Скрипт для скачивания файлов в папку
Добрый день. Подскажите, возможно ли с помощью javascript предопределить папку для скачивания файлов. Например, кликая по ссылке на сайте для скачивания медиафайла, файл скачивался пользователю в конкретную папку. Спасибо.
|
Нет, но браузер запоминает папку в которую последний раз производилось скачивание, а также не проблема ее явно прописать в настройках браузера.
|
Кстaти, не раз сталкивался с подобной ситуацией.
Как, например, переменные MS-среды: Microsoft Windows [Version 6.3.9600] (c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены. C:\>set ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Paguo-86PK\AppData\Roaming CARBON_MEM_DISABLE=1 CLASSPATH=.;C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip CommonProgramFiles=C:\Program Files\Common Files CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files CommonProgramW6432=C:\Program Files\Common Files COMPUTERNAME=Paguo-86PK ComSpec=C:\Windows\system32\cmd.exe FP_NO_HOST_CHECK=NO HOMEDRIVE=C: HOMEPATH=\Users\Paguo-86PK LOCALAPPDATA=C:\Users\Paguo-86PK\AppData\Local LOGONSERVER=\\Paguo-86PK NUMBER_OF_PROCESSORS=64 OS=Windows_NT Path=C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Mercurial PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC PROCESSOR_ARCHITECTURE=AMD64 PROCESSOR_IDENTIFIER=AMD64 Family 21 Model 19 Stepping 1, AuthenticAMD PROCESSOR_LEVEL=21 PROCESSOR_REVISION=1301 ProgramData=C:\ProgramData ProgramFiles=C:\Program Files ProgramFiles(x86)=C:\Program Files (x86) ProgramW6432=C:\Program Files PROMPT=$P$G PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ PUBLIC=C:\Users\Public QTJAVA=C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\Windows TEMP=C:\Users\Paguo-~1\AppData\Local\Temp TMP=C:\Users\Paguo-~1\AppData\Local\Temp USERDOMAIN=Paguo-86PK USERDOMAIN_ROAMINGPROFILE=Paguo-86PK USERNAME=Paguo-86PK USERPROFILE=C:\Users\Paguo-86PK VS90COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\ windir=C:\Windows P.S.: Рано или поздно, где-то это должны реализовать… Ведь локальное хранилище раньше тоже ограничивалось несколькими килобайтами cookies:cray: |
Paguo-86PK,
а причем тут переменные среды? |
Цитата:
Например, мне очень не нравится то, что кнопка выбора файлов открывает окно обзора моей файловой системы. А файловые API скриптов имеют возможность доступа к ним. Давно я обсуждал где-то идею такого API, где при обзоре файлов просто создаётся ярлык на него в папке сессии конкретной страницы. А в самом скрипте генерируется событие "изменение состава разделяемых медиа ресурсов" с кодом "добавлен файл" или "удалён". А переменная, наряду с локальным storage-хранилищем, имеет соответствующую структуру (директории, файлы и т.д.). P.S.: И скрипт может "дежурить" сутками… Например, кликнул в папке по фото и выбрал "Отправить ...->Сессия Хроме (скрипт такой-то)", в нужную папку отправляется ярлык. Хром генерирует событие onfileshare в скрипте и тот что-то делает. Или я опоздал?:-? |
Paguo-86PK,
а что мешает зайти в настройки браузера указать папку для сохранения или поведение браузера при открытии удаленного документа? Нравится вам диалог сохранения файла или нет, W3C и производителям браузера на это ровным счетом наплевать. Они руководствуются не вашими вкусами, а вопросами безопасности. :) Если позволить сохранять файлы втихую, а клиентскому скрипту изменять настройки браузера, шастатать по переменным окружения и изменять их, то на системах всех пользователей будет создан портал легального проникновения на них удаленного пользователя. Так что молите бога, что хоть кто-то об этом думает. :) |
Цитата:
В браузере указывается папка под сессии. В корне этой папке - файл конфигурации. А когда очередной скрипт открывает файловую сессию, в ней создаётся папка этой сессии и в ней копятся ярлыки (читаемых) файлов и создаваемые скриптом файлы (с квотами на размер и тип). P.S.: Или я свою позиция освещаю не так, или… |
Цитата:
|
Этo я понял. Главное, что API вообще не имело функций управления реальной файловой системы:
var SSM_CallBack = function( event, // код события files // объект файловой системы ) { switch(event) { case files.EVENT.DELETE: while(files.EVENT.nodes.length) { var file = files.EVENT.nodes.shift(); alert([ "Удаляется файл " + file.name, "Время удаления " + file.Date.toString(), "Размер файла " + file.size, "Источник события " + files.EVENT.source.id ].join("\r\n")); } break; case files.EVENT.CREATE: while(files.EVENT.nodes.length) { var file = files.EVENT.nodes.shift(); alert([ "Распространяется файл " + file.name, "Время представления " + file.Date.toString(), "Размер файла " + file.size, "Источник события " + files.EVENT.source.id ].join("\r\n")); } break; } } |
Paguo-86PK,
если вы печетесь об умении браузера предоставлять пользователю работу с файловой системой, то в рамках HTML5 такое уже есть, но в рамках разумного, то есть отведено браузером место, там и хранение. Вопрос же автора темы был иной, и того чего он хочет позволять нельзя, почему и так понятно. |
Позволитe мне разъяснить в деталях суть персональной коцепции браузера?
Допустим, по-любому, браузеры имеют кэш под разные профайлы и сессии. Когда заходим на какой-либо ресурс, загружаемая страница ресурса сохраняется в созданную временную собственную папку. В этой папке создаются поддиректории под коллекции стилей (папка style), изображений (папка img), скриптов и пр. Допустим, я, как пользователь, зашёл в эту конкретную папку и подменил файл 76.gif поддиректории img, оперативно на экране браузера именно document.image[76] поменяет изображение на моё без перезагрузки страницы. Также, объект файловой системы (моей концепции) имеет свою поддиректорию. Например, у меня есть ssm.file["foo"] = {XY: "abc", XyZ: [1, 2, 3]}, который имеет файл foo.xml, где вся структура разворачивается в древовидную XML-структуру и её можно оперативно редактировать (сделать "снимок" текущего состояния переменной foo, скопировав, чтобы потом можно было восстановить (вставить в ресурс другой страницы) без повторной локальной генерации. P.S. Кажется, я перемудрил и вы снова не так меня поймёте. |
Вопрос - вот нахрена это надо? Браузер, это не AIMP для хранения музыкальных коллекций, не Picasa для коллекций картинок. Браузер это просто - навигация по Интернету, закладки. И чем проще это будет для пользователя, тем лучше, такая тенденция как раз наблюдается в интерфейсах мобильных приложений.
Разработчики же, это иная категория, куда менее малочисленная, и для нее "в недрах" браузера и так не мало, а с выходом HTML5 еще и более стало. Этого мало? Ну так на здоровье - пишем для себя расширение под браузер и пользуемся на здоровье. Но как бы вы ни хотели большего (именно для разработчиков), оно будет доступно только с оглядкой на то, в свой ли вы огород с лопатою. Если считаете, что без ваших предложений "жить нельзя", ну так никто не запрещает с этими идеями обратиться к разработчикам браузеров. :) |
Спасибо всем, кто ответил. Задача на первый взгляд не сложная, может подскажете в какую сторону копать. На сайте хочу реализовать возможность загрузки кистей для фотошопа|Gimp. И вместо того, чтобы скачивать, затем распаковывать архив, затем искать нужную папку с кистями, потом заливать в папку. Удобнее: нажал на кнопку, автоматически скачало в нужную папку (в зависимости от ОС), обновил список кистей и дальше поехал работать.
|
Часовой пояс GMT +3, время: 08:30. |