У меня есть исключение, когда я пытался загрузить файл изображения с чем-то вроде этого
"Нет MediaTypeFormatter, доступного для чтения объекта типа 'HttpFileCollection' из содержимого с типом носителя 'multipart / form-data '. "
Я не использовал кнопку отправки, я просто хочу загрузить файл асинхронно без обратной передачи.
Вот мой код:
HTML:
<input type="button" ref="upload" name="upload" v-on:click="UploadPhoto" />
Vue.JS:
async UploadPhoto() {
let image = new FormData();
image.append('name', 'fileUploader');
image.append('file', this.$refs.fileUploader.files[0]);
let config = {
headers: {
// 'Content-Type': 'image/*'
'Content-Type': 'multipart/form-data'
}
};
// call server upload request here...
let testRes = await axios.post('http://localhost:44347/api/GetUser/UploadPhoto', image, config).then()
.catch(error => console.log(error));
this.result = testRes;
console.log(image);
},
Web Api:
[HttpPost]
[Route("api/GetUser/UploadPhoto")]
public async Task<IHttpActionResult> UploadPhoto([FromBody] HttpFileCollection selectedfiles)
{
await Task.Run(() =>
{
string sPath= HostingEnvironment.MapPath("~/Dummy/");
// HttpFileCollection selectedfiles = HttpContext.Current.Request.Files;
selectedfiles = HttpContext.Current.Request.Files;
HttpPostedFile file = selectedfiles[0];
string fileName = new FileInfo(file.FileName).Name;
if (file.ContentLength > 0)
{
Guid guid = new Guid();
string modFilename = guid.ToString() + "_" + fileName;
file.SaveAs(sPath + Path.GetFileName(modFilename));
}
});
return Ok();
}