HTML表单发送错误的文件有效负载

时间:2017-06-09 08:19:03

标签: javascript jquery html file-upload request

获取以下表格进行文件上传:

<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参数的值。我无法弄清楚原因。

1 个答案:

答案 0 :(得分:0)

每当点击input file type时,它会弹出一个窗口来选择一个文件,因此您应该触发submit()而不是文件click()等功能,

function importCSV() {
   $('#uploadCSVForm').submit(); // here form should be submitted.
}