Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   input type= file, как с попощью пользовтельского скрипта изменить value (https://javascript.ru/forum/css-html-browser/39933-input-type%3D-file-kak-s-poposhhyu-polzovtelskogo-skripta-izmenit-value.html)

inhab 17.07.2013 15:10

input type= file, как с попощью пользовтельского скрипта изменить value
 
Есть пользовательский скрипт автозаполнения формы определенных сайтов. Как реализовать подстановку в input type= file value=, чтоб на сервер отсылалось то что мне нужно. Задача в автоматизации -- не выбирать файл ручками. Возможно что-то делать с пост-запросом или его самому формировать? Может как то вводить псевдо-элемент или еще что-то. Знаю это возможно реализовать.

devote 17.07.2013 15:16

Цитата:

Сообщение от inhab
или его самому формировать?

:yes:
Цитата:

Сообщение от inhab
Знаю это возможно реализовать.

на JavaScript нет, потому что на нем нельзя:
Цитата:

Сообщение от inhab
его самому формировать?

Хотя аяксом конечно можно отправлять форму измененную с включением FormData.

В любом случае все зависит от того на чем конкретно написан ваш скрипт, и что конкретно за действия происходят, кто у кого что берет, что кому доступно и т.д.

inhab 17.07.2013 15:20

Скрипт js. Браузер мой. Сайт чужой. Действия просты -- не выбирать файл, а как-то отсылать на сайт тот файл что я предустановлю. Приветствуются любые варианты, в том числе и использование своего локального сервера.

devote 17.07.2013 15:27

ну значит юзай FormData, читай про него.. а файл свой придется в массив данных преобразовать, то есть тип Blob что бы его через FormData отправлять, при отправке исключать поле input file сайт, и включать свой с Blob данными

inhab 17.07.2013 15:35

Цитата:

Сообщение от devote (Сообщение 262791)
ну значит юзай FormData, читай про него.. а файл свой придется в массив данных преобразовать, то есть тип Blob что бы его через FormData отправлять, при отправке исключать поле input file сайт, и включать свой с Blob данными

Не в курсе можно ли в этот блоб будет засунуть ЛОКАЛЬНЫЙ файл или хотя бы url файла?

devote 17.07.2013 15:48

Цитата:

Сообщение от inhab
Не в курсе можно ли в этот блоб будет засунуть ЛОКАЛЬНЫЙ файл или хотя бы url файла?

это просто данные, их можно сформировать как угодно, хотя бы так:
var xhr = new XMLHttpRequest();
var formData = new FormData(/** сюда можно передать ссылку на форму которую нужно отправить **/);
// ...
// Прочая инициализация xhr.open обработка событий и т.д.
// ...
var BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.OBlobBuilder || window.BlobBuilder;
var bb = new BlobBuilder();
bb.append('Тут внутренности твоего файла');
var data = bb.getBlob('text/plain'); // тип файла

formData.append('my_file_field_name', data);

xhr.send(formData);
Ну и т.д. Ну это примерно, щас уже не помню.. вообщем копай в эту сторону.

inhab 18.07.2013 14:47

Цитата:

Сообщение от devote (Сообщение 262797)
var formData = new FormData(/** сюда можно передать ссылку на форму которую нужно отправить **/);

Т.е. ту форму на странице к которой я хочу присоединить blob?

devote 18.07.2013 14:47

да

inhab 18.07.2013 14:59

Цитата:

Сообщение от devote (Сообщение 262963)
да

Если не сложно, как это сделать: имя или айди, что-то не соображу. Допустим есть имя.

devote 18.07.2013 15:23

Цитата:

Сообщение от inhab
Допустим есть имя.

var formData = new FormData(document.getElementsByName('form_name')[0]);
по ID аналогично:
var formData = new FormData(document.getElementById('form_id'));


Часовой пояс GMT +3, время: 10:58.