如何设置它的值?
<input type="file" />
如何设置它的值?
<input type="file" />
当前回答
这个话题非常古老,但我认为有人需要这个答案!
<input type="file" />
<script>
// Get a reference to our file input
const fileInput = document.querySelector('input[type="file"]');
// Create a new File object
const myFile = new File(['Hello World!'], 'myFile.txt', {
type: 'text/plain',
lastModified: new Date(),
});
// Now let's create a DataTransfer to get a FileList
const dataTransfer = new DataTransfer();
dataTransfer.items.add(myFile);
fileInput.files = dataTransfer.files;
</script>
其他回答
我写完整的例子加载URL输入文件,并预览 你可以在这里查看 1 https://vulieumang.github.io/vuhocjs/file2input-input2file/
简而言之,你可以使用这个函数
function loadURLToInputFiled(url){
getImgURL(url, (imgBlob)=>{
// Load img blob to input
// WIP: UTF8 character error
let fileName = 'hasFilename.jpg'
let file = new File([imgBlob], fileName,{type:"image/jpeg", lastModified:new Date().getTime()}, 'utf-8');
let container = new DataTransfer();
container.items.add(file);
document.querySelector('#file_input').files = container.files;
})
}
// xmlHTTP return blob respond
function getImgURL(url, callback){
var xhr = new XMLHttpRequest();
xhr.onload = function() {
callback(xhr.response);
};
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.send();
}
出于安全考虑,不能将其设置为客户端磁盘文件系统路径。
想象一下:
<form name="foo" method="post" enctype="multipart/form-data">
<input type="file" value="c:/passwords.txt">
</form>
<script>document.foo.submit();</script>
你不希望你访问的网站能够做到这一点,对吗?=)
您只能将其设置为一个公共可访问的web资源,如答案所示,但这显然与客户端磁盘文件系统路径不同,因此在该上下文中它是无用的。
你不能。这是一种安全措施。想象一下,如果有人编写JS,将文件输入值设置为一些敏感数据文件?
你不能。
设置文件输入值的唯一方法是由用户选择文件。
这样做是出于安全考虑。否则,您将能够创建一个JavaScript,自动从客户机的计算机上传特定的文件。
实际上我们可以这么做。 我们可以使用c#中的webbrowser控件使用FormToMultipartPostData库来设置文件的默认值。我们必须下载这个库并将其包含在我们的项目中。Web浏览器使用户能够在表单内浏览网页。 一旦网页加载,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