<form method="POST" id="uploadForm" enctype="multipart/form-data"> <input type="file" id="config" name="configFile"> <input type="file" id="demand" name="demandFile"> </form> button id="progressBtn" class="btn btn-primary">計算</button> <script> document.querySelector("#progressBtn") = function () { var formdata = new FormData() formdata.append("configFile", $("#config")[0].files[0]) formdata.append("demandFile", $("#demand")[0].files[0]) $.ajax({ type: "POST", url: "/api/computeResult", data: formdata, async: false, contentType: false, processData: false, success: function (res) { }, error: function (res) { } }) } </script>
注意:
- form表單提交input的type=file時,form的enctype="multipart/form-data",才能提交file的文件流到后台
- 必須用FormData對象存儲和提交表單中的值
- FormData的append方法存儲表單數據
- FormData的get方法才可以看到存儲到formData中的值,如formdata.get("configFile"),若是formdata.configFile是獲取不到值的
- ajax中async: false