Как установить значение для ввода файла в HTML?
Примечание:
ответы и комментарии ниже отражают состояние устаревших браузеров в 2009 году. Теперь вы можете установить значение элемента ввода файла динамически / программно, используя JavaScript и объект dataTransfer или FileList в 2017 году.
см. ответ в этом вопросе для деталей, а также демо:
как установить входное значение файла программно (т. е.: при перетаскивании файлы)?
Как я могу установить значение этого?
<input type="file" />
7 ответов
вы не можете из-за соображений безопасности.
представьте себе:
<form name="foo" method="post" enctype="multipart/form-data">
<input type="file" value="c:/passwords.txt">
</form>
<script>document.foo.submit();</script>
вы не хотите, чтобы веб-сайты, которые вы посещаете, могли это сделать, не так ли? =)
ты не можешь.
единственный способ установить значение ввода файла-это выбрать файл пользователем.
Это делается по соображениям безопасности. В противном случае вы сможете создать Javascript, который автоматически загружает определенный файл с клиентского компьютера.
Не ответ на ваш вопрос (на который ответили другие), но если вы хотите иметь некоторые функции редактирования загруженного поля файла, то, что вы, вероятно, хотите сделать:
- показать текущее значение этого поля, просто распечатав имя файла или URL-адрес, щелкните ссылку, чтобы загрузить его, или если это изображение: просто покажите его, возможно, в виде миниатюры
- на
<input>
тег для загрузки нового файла - флажок, который, если установлен, удаляет текущий загружаемый файл. обратите внимание, что нет способа загрузить "пустой" файл, поэтому вам нужно что-то вроде этого, чтобы очистить значение поля
ты не можешь. И это мера безопасности. Представьте, что кто-то пишет JS, который устанавливает входное значение файла в какой-то конфиденциальный файл данных?
определить в html:
<input type="hidden" name="image" id="image"/>
в JS:
ajax.jsonRpc("/consulta/dni", 'call', {'document_number': document_number})
.then(function (data) {
if (data.error){
...;
}
else {
$('#image').val(data.image);
}
})
после:
<input type="hidden" name="image" id="image" value="/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8U..."/>
<button type="submit">Submit</button>
на самом деле мы можем сделать это. мы можем установить значение файла по умолчанию с помощью элемента управления webbrowser в c# с помощью библиотеки FormToMultipartPostData.Мы должны загрузить и включить эту библиотеку в наш проект. Браузер позволяет пользователю перемещаться по веб-страницам внутри формы. После загрузки веб-страницы будет выполнен скрипт внутри webBrowser1_DocumentCompleted. Итак,
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
FormToMultipartPostData postData =
new FormToMultipartPostData(webBrowser1, form);
postData.SetFile("fileField", @"C:\windows\win.ini");
postData.Submit();
}
см. ссылку ниже для загрузки и завершения ссылка.
https://www.codeproject.com/Articles/28917/Setting-a-file-to-upload-inside-the-WebBrowser-com