html set input值,javascript - How to set a value to a file input in HTML? - Stack Overflow

As everyone else here has stated: You cannot upload just any file automatically with JavaScript.

HOWEVER! If you have access to the information you want to send in your code (i.e., not C:\passwords.txt), then you can upload it as a blob-type, and then treat it as a file.

What the server will end up seeing will be indistinguishable from someone actually setting the value of . The trick, ultimately, is to begin a new XMLHttpRequest() with the server...

function uploadFile (data) {

// define data and connections

var blob = new Blob([JSON.stringify(data)]);

var url = URL.createObjectURL(blob);

var xhr = new XMLHttpRequest();

xhr.open('POST', 'myForm.php', true);

// define new form

var formData = new FormData();

formData.append('someUploadIdentifier', blob, 'someFileName.json');

// action after uploading happens

xhr.onload = function(e) {

console.log("File uploading completed!");

};

// do the uploading

console.log("File uploading started!");

xhr.send(formData);

}

// This data/text below is local to the JS script, so we are allowed to send it!

uploadFile({'hello!':'how are you?'});

So, what could you possibly use this for? I use it for uploading HTML5 canvas elements as jpg's. This saves the user the trouble of having to open a file input element, only to select the local, cached image that they just resized, modified, etc.. But it should work for any file type.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值