我的頁面中有一個輸入(文本),因此用戶可以插入檔案名并上傳檔案本身,然后按上傳按鈕。
我想在一個 ajax 請求中將所選檔案及其名稱從 input(text) 發送到我的控制器。
它是如何作業的 ?
這是 HTML 代碼:
<!--This is my upload section-->
<div >
<input type="file" id="theFile" required="">
<label for="theFile"></label>
</div>
<!--This is my input section-->
<div >
<div >
<label for="fileName">Enter the file name: </label>
<input type="text" id="fileName" placeholder="">
</div>
</div>
這是我嘗試的 Ajax 代碼不起作用的方法:
var formData = new FormData();
formData.append('upload', $('#questionFile')[0].files[0]);
$.ajax({
url:'the url of my controller is here',
type: 'POST',
data: {
'file' : formData,
'fileName' : $("#fileName").val()
},
cache: false,
processData: false,
contentType: false
})
這是我在控制器中的方法:
[HttpPost("getFile")]
[AllowAnonymous]
public IActionResult getFile(IFormFile file,string fileName)
{
//This is a method in my service project which uploads file
SaveQuestionFile(file, fileName);
return Ok("Uploaded");
}
uj5u.com熱心網友回復:
在Jquery通過使用檔案FORMDATA
var fileData = new FormData();
var fileUpload = $("#fileId").get(0).files;
fileData.append("FILE", fileUpload[0]);
$.ajax({
type: "POST",
contentType: false,
processData: false,
url: "url here",
data: fileData,
success: function (result) {
},
error: function (data) {
},
complete: function () {
}
});
在C#從請求和附加的資料中獲取檔案中
public IActionResult getFile()
{
List<IFormFile> files = (List<IFormFile>)Request.Form.Files;
//if multiple
foreach (IFormFile file in files)
{
string fileName = file.FileName;
}
}
uj5u.com熱心網友回復:
您需要添加一個檔案,它的名字是file,并添加一個檔案名,其名字是fileName來formData,讓你可以在操作的檔案和檔案名:
var formData = new FormData();
formData.append('file', $('#theFile').get(0).files[0]);
formData.append('fileName', $("#fileName").val());
$.ajax({
type: "POST",
url: "the url of my controller is here",
data: formData,
processData: false,
contentType: false,
success: function (data) {
}
});
結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/359823.html
標籤:javascript 查询 阿贾克斯 asp.net核心
