获取以下表格进行文件上传:
<form id="uploadCSVForm" action="../admin/account?CSRFToken=$CSRFToken"
method="post" enctype="multipart/form-data" style="opacity: 0;">
<input id="uploadCSV" type="file" accept=".csv"
onchange="javascript:this.form.submit();"/>
</form>
使用jQuery触发文件上传对话框:
function importCSV() {
$('#uploadCSV').click();
}
单击特定按钮时执行函数importCSV()
。
我想要的是,当点击文件上传对话框中的Open
按钮时,应将所选文件发送到服务器。
使用上面提到的代码,表单发送以下请求有效负载:
------WebKitFormBoundaryB4a9e2nyaO3MNCw2
Content-Disposition: form-data; name="CSRFToken"
F5VhCnbCTVWhapxZhQJZ
------WebKitFormBoundaryB4a9e2nyaO3MNCw2--
请求没有来自所选文件的有效负载,而是具有CSRFToken
作为有效负载,这是来自表单的action参数的值。我无法弄清楚原因。
答案 0 :(得分:0)
每当点击input file type
时,它会弹出一个窗口来选择一个文件,因此您应该触发submit()
而不是文件click()
等功能,
function importCSV() {
$('#uploadCSVForm').submit(); // here form should be submitted.
}