模拟图片上传,就是非人为操作地进行图片上传,比如某网站需要上传头像,这时候能够自动在你某盘中读取文件并丢到那个input[type=file]的dom里面,然后触发上传。
// 搞到input的dom对象
var input = $("#fileupload")[0];
// 读取文件
fs.readFile("./a.png", function (err, data)
{
if (err) {
throw err;
}
console.log(data.length);
// 读取的文字二进制数据已经在data里面了
// 现在要创建一个File对象
var myFile = new File([data], "a.png",
{
type: "image/png",
lastModified: new Date()
}
);
console.log(myFile);
// 把新的file对象丢到input的dom中的files里面
input.files.append(myFile);
// 模拟input的change事件,使其触发更新头像等一系列操作
var event = document.createEvent("events");
event.initEvent("change", true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, 0, null);
input.dispatchEvent(event);
})