我正在使用这个插件:jQuery HTML5 uploader(参见演示),在表单中。我想在用户提交表单时使用POST方法发送上传的文件。
也许我可以创建一个input[type="file"]
,使其隐藏,并动态添加插件内输入的上传文件?有可能的?
所以,如果我不能这样做,只有当用户点击提交按钮时,如何使用此插件将文件上传到服务器?我知道这个插件已经用AJAX做了,但我想只在用户点击按钮时上传它们。
也许我应该创建一个名为files
的变量,当用户点击提交按钮时,我自己使用AJAX发送文件和其余的输入数据?
像这样的东西:
jQuery( "#dropbox" ).html5Uploader({
onClientLoadStart: function( event, file ) {
files[] = file;
[...]
}
});
[...]
jQuery("#button").on("click", function() {
jQuery.ajax({
data: files
});
[...]
});
出于安全原因,您不能这样做。想象一下可能性。我在隐藏字段中通过JavaScript输入文件。你按提交。我收到你的档案。任何文件。可怕,对吗?
这个脚本已经将文件上传到服务器了。你需要的是一种从服务器上取回文件名/ id并将它们附加到隐藏表单的方法..比有人提交表单时你会知道他上传了哪些文件。 。
你通过听onSuccess事件来做到这一点..
由于浏览器安全性,您无法在文件上传器中选择文件。
用户只能这样做而不是脚本。
出于安全原因,您无法动态更改文件类型的输入字段的值。如果可能,恶意用户可以将值设置为:“c:\ maliciousfile”并损害您的系统