Note:
The answers & comments below reflect the state of legacy browsers in 2009. Now you can actually set the value of the file input element dynamically/programatically using JavaScript in 2017.
See the answer in this question for details as well as a demo:
How to set file input value programatically (i.e.: when drag-dropping files)?
我正在尝试使用 Jquery 实现上传图像的拖放功能。
这是我的代码:
上传.html
<form id ="image_upload_form" action="" method="post" enctype="multipart/form-data">
<input id="id_image" type="file" name="image">
<input type="submit" value="Upload" />
</form>
<div id="drop_field"></div>
image_upload.js
$(document).ready(function() {
var drop_field = $("#drop_field");
drop_field.bind('dragover', file_drag_over);
drop_field.bind('drop', file_select);
});
function file_select(event) {
event.stopPropagation();
event.preventDefault();
var file = event.originalEvent.dataTransfer.files [0];
$("#id_image").val(file);
}
function file_drag_over(event) {
event.stopPropagation();
event.preventDefault();
event.originalEvent.dataTransfer.dropEffect = "copy";
}
一切正常,除了当我将图像文件拖放到字段上时,它给了我一个安全错误:
SecurityError: The operation is insecure.
this.value = val;
我猜发生这种情况是因为我正在尝试修改文件输入字段的“值”属性。上传文件而不出现此安全错误的正确方法是什么?
谢谢!!
最佳答案
该错误是因为您正在尝试设置文件输入类型的值,由于安全原因,无法设置文件输入类型的值。
另请阅读this question和来自 MDN
关于javascript - Jquery 文件拖放给我一个 "insecure operation"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18308120/