Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript的HTML表单输入类型文件预选值_Javascript_Html_Forms_Input_File Upload - Fatal编程技术网

使用javascript的HTML表单输入类型文件预选值

使用javascript的HTML表单输入类型文件预选值,javascript,html,forms,input,file-upload,Javascript,Html,Forms,Input,File Upload,这是一个自我回答的问题,给所有那些找到答案但仍然没有答案(我找不到答案)的人一个答案。可以预选文件(至少对于图像)。这可能是不好的做法,但也是可能的。以下是解决方案:(适用于Firefox 82.0.3和最新的Chrome[11-2020]) HTML: const myImage=document.getElementById(“我选择的图像”); const input=document.getElementById(“我的输入”);//您的输入元素type=“file” 常量url=”h

这是一个自我回答的问题,给所有那些找到答案但仍然没有答案(我找不到答案)的人一个答案。可以预选文件(至少对于图像)。这可能是不好的做法,但也是可能的。

以下是解决方案:(适用于Firefox 82.0.3和最新的Chrome[11-2020])
HTML:

const myImage=document.getElementById(“我选择的图像”);
const input=document.getElementById(“我的输入”);//您的输入元素type=“file”
常量url=”https://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Test.svg/620px-Test.svg.png“//包含资源的url
window.onload=加载文档时函数(){//
const dt=new DataTransfer();//创建虚拟数据传输对象
const request=new XMLHttpRequest();//创建HTTP请求
打开(“获取”,url,true);
request.responseType=“arraybuffer”;
//对于其他类型的图像,您最终会自己找到答案:)
常量文件类型=(url.substr(url.lastIndexOf(“.”+1));
const mimeType=(“image/”+fileType).replace(“jpg”,“jpeg”);//没有MIME类型image/jpg-only image/jpeg
request.overrideMimeType(mimeType);//idk,如果这是必需的,但它可以工作
request.onload=函数(e){
const blob=新blob([this.response]{
类型:mimeType
});//从响应创建Blob对象
const file=新文件([blob],“您的文件名”+“文件类型”{
类型:mimeType
})//从Blob创建文件对象
dt.items.add(file);//将文件添加到虚拟数据传输
input.files=dt.files;//使用新内容放置输入内容
输入。dispatchEvent(新事件(“变更”));
}
request.send();//执行请求
}
//仅当您要显示该文件时
addEventListener(“change”,function()){
const reader=new FileReader();
reader.onload=函数(e){
myImage.src=e.target.result;
myImage.removeAttribute(“隐藏”);
};
reader.readAsDataURL(input.files[0]);
})

<input id="my-input" type="file">