Сохранить изображения на жесткий диск БЕЗ запроса?

Я использую твиттер. Твиты некоторых людей содержат фотографии, и я хочу их сохранить.

Я проверил ifttt, где твиттер не является триггером. Таким образом, ifttt не может помочь мне в этом.

Одна из идей, вероятно, заключается в использовании JavaScript. Я использую Firefox и установил Greasemonkey. Я могу написать скрипт Greasemonkey (JavaScript), работающий на сайте Twitter. Как только я нажимаю ссылку «ретвитнуть» или другую кнопку, добавленную моим скриптом, мой скрипт проверяет содержимое твита, находит URL-адрес фотографии и сохраняет ее на диск.

Одна проблема заключается в том, как сохранить изображение. Я искал в Интернете. Некоторые используют win.document.execCommand("SaveAs"), и он покажет окно «сохранить как». Теперь, когда отображается окно, почему бы просто не щелкнуть изображение правой кнопкой мыши и выбрать «Сохранить как вручную»? Так что метод мне не нравится.

Какие-либо предложения?


person Gqqnbig    schedule 29.11.2012    source источник


Ответы (6)


Greasemonkey не может этого сделать, потому что обычный javascript это делать запрещено (из соображений безопасности), а API Greasemonkey не предоставляет метод для записи файлов (и никогда не будет).

Вот четыре альтернативы:

  1. Обновление: переключитесь на Tampermonkey, который вы все равно должны это сделать. Затем вы можете использовать GM_download, как указано user136036 в его ответ.

    or

  2. Установите и используйте отличный DownThemAll дополнение (Обновление: Firefox 57 прекратил поддержку такого расширения). Для этого по-прежнему требуется один щелчок, но это лучше, чем всегда захват файла волей-неволей, в любом случае в большинстве случаев.

    or

  3. Напишите собственное расширение addon. Посмотрите этот (теперь устаревший) ответ для кода записи файлов от одного из лучших гуру надстроек FF. Но новые расширения стиля все еще могут это делать.

    or

  4. Используйте XAMPP (или аналогичный) для запуска веб-сервера на вашем компьютере. Затем вам нужно будет написать веб-приложение, которое исключает входящие данные изображения (или просто URL-адрес изображения) и сохраняет изображение на диск.

person Brock Adams    schedule 29.11.2012
comment
Жаль, что GM, похоже, не реализовал GM_download. Однако он работает с TM для Firefox. - person brasofilo; 31.07.2018
comment
@brasofilo, не просто не реализовано. Эта проблема помечена Bankruptcy, что означает, что контроллер Greasemonkey решил никогда не поддерживать эту функцию. Greasemonkey 4+ — это мерзость и пародия. - person Brock Adams; 31.07.2018
comment
Ахааа... наводящее на размышления имя тега, кстати, лолз. Не прикасайтесь к внутренней работе, но интерфейс GM отстает на годы... - person brasofilo; 31.07.2018

Это возможно при использовании Tampermonkey или Violentmonkey (Firefox или Chrome).
Они добавили команду GM_Download.
Вы можете использовать ее следующим образом:

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http*://*/*
// @grant        GM_download
// ==/UserScript==


var arg = { url: "https://example.com/123456.jpg",
            name: "CustomFileName.jpg"
          };

GM_download(arg);

Для получения дополнительной справки и доступных опций см. документацию Tampermonkey: https://tampermonkey.net/documentation.php

person user136036    schedule 19.04.2016
comment
Это выглядит многообещающе, пока GM_download работает должным образом. Я попробую позже, спасибо. - person Gqqnbig; 19.04.2016
comment
где находится папка CustomFileName.jpg - person daydaynatation; 19.04.2021

JavaScript не имеет доступа к файловой системе компьютера.

Для этого нет встроенной функциональности JS. В противном случае любой сайт сможет сохранить что-либо на ваш компьютер, что приведет к тому, что ваш компьютер быстро выйдет из строя.

person Cerbrus    schedule 29.11.2012
comment
Итак... должен ли я написать плагин Firefox для выполнения этой работы? Кажется, работы становится все больше и больше... - person Gqqnbig; 29.11.2012
comment
Это был бы вариант, да. - person Cerbrus; 29.11.2012
comment
@BrockAdams: Не обязательно. Есть некоторые надстройки, которые могут автоматически сохранять файлы на диск. - person Cerbrus; 29.11.2012
comment
Вы правы, поэтому я предварил этот комментарий IIRC. - person Brock Adams; 29.11.2012

Вы не сможете сделать это так, как вам хотелось бы. Если бы браузеры позволяли веб-сайтам сохранять любой контент, который они хотели, прямо на компьютер пользователя... что ж, вы можете себе представить последствия.

person Levi Botelho    schedule 29.11.2012

Плагин - правильный ответ для этого. Если вы ищете фреймворк для проверки Firebreath, он также дает вам кросс-платформенные возможности. as работает во всех возможных браузерах, о которых вы только можете подумать, включая IE. Учиться тоже легко

person Chipmunk    schedule 29.11.2012

Вы можете легко сделать это в Firefox, выбрав параметр «Сохранить это автоматически» вместо запроса. Я думаю, что эта опция должна быть доступна и в Chrome.

В первый раз, когда вы загружаете файл с новым расширением, скажем, Zip или jpg, браузер может предложить вам место, где сохранить этот файл. В этом случае вы можете установить местоположение по умолчанию, где бы вы ни хотели загружать файлы, и установить флажок «Автоматически загружать такие файлы».

person srkgupta    schedule 01.12.2012