【问题标题】:HTML Form sending wrong file payloadHTML 表单发送错误的文件有效负载
【发布时间】:2017-11-11 04:11:34
【问题描述】:

获得以下表格用于文件上传:

<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 作为有效负载,这是表单动作参数的值。我不知道为什么。

【问题讨论】:

    标签: javascript jquery html file-upload request


    【解决方案1】:

    每当单击input file type 时,它会弹出一个窗口以选择文件,因此您应该触发submit() 而不是文件click() 之类的函数,

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

    【讨论】:

    • 如果我这样做,不会触发文件上传对话框。发送到服务器的有效负载错误的相同请求。
    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2018-04-17
    相关资源
    最近更新 更多