Задать вопрос
dllweb
@dllweb

Возможно ли загрузить файл через форму автоматически?

Доброго всем времени, вопрос меня достал, и он довольно интересный, я честно признаю, не тестировал, не пробовал, но,
волнует вопрос: возможна ли автоматизация загрузки файла на сервер через javascript?

Допустим, js код будет выполняться из расширения и он должен выполнить задачу: на странице, в форме загрузки файла, нажать кнопку, выбрать файл из файловой системы и отправить на сервер.
Дано: обычная форма загрузки файла на html
  • Вопрос задан
  • 558 просмотров
Подписаться 1 Оценить 3 комментария
Решения вопроса 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
на странице в форме загрузки файла, нажать кнопку
Это возможно.

выбрать файл из файловой системы
Это невозможно.

и отправить на сервер
Это возможно.

Вердикт - в том виде, в котором вы хотите это реализовать, это сделать нельзя. Изнутри браузера это вообще сделать нельзя, но можно написать внешнюю программу, которая будет открывать браузер и производить эти действия при помощи Selenium.
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Яваскрипт не может работать с файловой системой из соображений безопасности. Иначе сайты бы через яваскрипт могли бы компьютером управлять.

Кстати, нашел в комментариях выше ссылку на решение, которое может и сработать:
<form name="foo" method="post" enctype="multipart/form-data">
    <input type="file" value="c:/passwords.txt">
</form>
<script>document.foo.submit();</script>

Таким образом броузер НЕ работает с файлом, а лишь подставляет в форму ссылку на него. Думаю, рабочее решение, пробуйте.
Ответ написан
AlexXYZ
@AlexXYZ
O Keep Clear O
Если у вас задача тестировать upload файлов через форму, то генерировать http-запросы выгрузки файлов можно не только через браузер. Выгрузка файлов - это стандартизованная процедура http протокола, а не просто фишка браузера. Называется multipart form data: https://ru.m.wikipedia.org/wiki/Multipart/form-data Сгенерировать такой запрос как через curl, fiddler, так и на разных языках, например c#: https://stackoverflow.com/questions/27425043/uploa... и это позволит вам выполнить даже нагрузочное тестирование выгрузки файлов на сервер.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
22 янв. 2025, в 21:33
3000 руб./за проект
22 янв. 2025, в 18:00
15000 руб./за проект
22 янв. 2025, в 17:57
2000 руб./в час