2014-10-17 3 views
0

Я хочу написать надстройку браузера, которая автоматически загружает файл на страницу. Так что это будет сделано в чистом Javascript.Загрузка файла Trigger только по Javascript

Это то, что я имею/знать:

  1. input#someId входа загрузки файла

  2. имя и местоположение файла в компьютере

Я пытаюсь «жёстко «в console сейчас как« Доказательство концепции », но я не могу заставить его работать.

Я пробовал эти два метода:

  1. inputElement.click() в inputElement является querySelector этого входа.

  2. initMouseEvent Использование из what's the equivalent of jquery's 'trigger' method without jquery? но дал мне ошибки Uncaught TypeError: Cannot read property 'dispatchEvent' of null

Так что мои вопросы:

  1. Как вызвать нажмите ввод элемента загрузки файла?

  2. Лучше: как полностью загрузить загрузку? В основном передать имя файла + место для загрузки, чтобы начать (например, когда пользователь нажимает кнопку OK, чтобы открыть файл в диалоговом окне)

UPDATE 1:

Я читал эту http://www.thecssninja.com/javascript/fileapi Может загрузки файлов из Файловая система невозможна. Как насчет этих альтернатив:

  1. Мы можем захватить файл из URL (HTTP)

  2. файл является только образ и в памяти Javascript (base64)

Любой из вышеперечисленных должно быть ОК, если они могут автоматически загружаться и обходить диалоговое окно и искать файл через локальную файловую систему. Я думаю, что, если изображение DOM или даже холст можно просто потащить?

+2

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

+0

Было бы серьезной угрозой безопасности для загрузки файла с компьютера пользователя автоматически. Загрузка файлов требует ручного взаимодействия с пользователем (поэтому явное согласие). Хотелось бы, чтобы сайт, который вы посещали, автоматически загружал ваши, скажем, настройки браузера, на удаленный сервер? – Terry

+0

http://stackoverflow.com/questions/15249185/local-chrome-extension-to-set-file-of-input-type-file – epascarello

ответ

1

Как люди прокомментировали, вы не можете этого сделать. По соображениям безопасности у вас нет абсолютно никакого доступа к программному заполнению ввода файла. Подумайте об этом, какой-нибудь чувак может добавить простой скрипт для кражи файлов с вашего компьютера, и вы даже не знаете!

Насколько я знаю, не может быть сделано.

+0

Может быть, может быть сделано java. Java может делать любые больные вещи. –

+0

Да, потому что вам нужно разрешить запуск апплета, и вас предупредит, что вы должны доверять ему ... так что в основном вы открываете дверь для того, чтобы делать все, что хотите, но javascript запускается ВСЕГДА, поэтому вы не получаете шанс «разрешить» его, поэтому он не поддерживает такую ​​функцию по умолчанию. –

+1

Да, я знаю. Однако я помню времена, когда было меньше предупреждений для java-апплетов ... –

Смежные вопросы