html file对象修改,javascript – Html文件输入,从File对象设置选择

UPDATE

您似乎想从drop事件中获取File对象并将其分配给< input>元件.不幸的是,你做不到.只有用户才能选择文件;您无法动态更改将上传的文件,因为出于安全原因,浏览器会拒绝JavaScript此功能.

既然你说你有一个拖动区域,我假设你正在使用并定位支持拖放的浏览器.请注意,并非所有浏览器都支持拖放,因此我的示例仅限于此类浏览器.

通过拖放,您可以从drop事件中获取File对象,而不需要输入元素.

// when you attach the 'drop' event listener

var dropzone = document.getElementById('drag_area'); //

attachEvent(dropzone, 'drop', function(event) {

var dt = event.dataTransfer;

var fileList = dt.files;

var file = fileList[0]; // you would have to change this if you allow multi-file upload

uploadFile(file);

});

function uploadFile(fileToUpload) {

var xhr = new XMLHttpRequest();

xhr.open("POST", "url", true); //

var form_data = new FormData();

form_data.append('file', fileToUpload);

xhr.send(form_data);

}

function attachEvent(element, type, fn) {

if (element.addEventListener) {

element.addEventListener(type, fn, false);

} else if (element.attachEvent) {

element.attachEvent('on' + type, fn);

}

}

请注意,这不是100%浏览器兼容.某些浏览器不支持通过XMLHttpRequest()上传文件.如果您想支持这些浏览器,那么您必须做一些不同的事情.

最后,我的示例不考虑使用表单.如果您想要基于表单的方法,请告诉我.我也可以帮助你:)

如果您有任何疑问,请告诉我.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值