[英]How can I send a file, for saving, to my server, via ajax, in jQuery?
[英]How can I send a file and a string to my backend C# from JQuery Ajax?
我的 UI 有一个用于上传文件的输入和一个用于文件名的输入。
我想在同一个 ajax 请求中从用户那里获取文件及其名称,并将具有获取名称的文件上传到我的服务器。
问题是如何在同一个请求中从用户那里获取文件(二进制)和文件名?
这是我的尝试,但导致 400 错误。
C#中的函数:
public IActionResult UploadImage(IFormFile upload, string fileWithName)
{
//some code here
}
这是我的ajax:
$("#startUploading").on("click",function() {
var fileInput = $.trim($("#myfile").val());
var formData = new FormData();
formData.append('upload', $('#myfile')[0].files[0]);
formData.append('pathWithName', $("#fileAddressUploadTo").val());
$.ajax({
url: apiUrl+'/api/V1/Servers/UploadImage',
type: 'POST',
data: formData,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem('token'));
},
cache: false,
processData: false,
contentType: false
});
});
400 错误意味着错误的请求,但根据我的测试,我发现它对我有用。 所以我担心您的代码中的问题可能与$('#myfile')[0].files[0]
有关,请参阅下面的代码
<div>
<input type="file" id="uploadFile" />
<button id="btn4">upload</button>
</div>
$("#btn4").click(function(){
var form = new FormData();
var temp = $('#uploadFile').prop('files');
form.append("file",temp[0]);
form.append("name","myFile");
console.log(form);
$.ajax({
url: 'https://localhost:44321/hello/upload',
type: 'POST',
data: form,
cache:false,
contentType:false,//stop jquery auto convert form type to default x-www-form-urlencoded
processData:false,
success: function (d) {
alert(d)
}
});
});
public string upload(IFormFile file, string name) {
return "hello";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.