#c# #upload #multipartform-data #asp.net-core-webapi
#c# #загрузка #multipartform-data #asp.net-core-webapi
Вопрос:
Мне нужно загрузить файл (изображение) и четыре других параметра строкового типа одним HTTP-запросом на мой asp.net основное приложение веб-api, а тип содержимого — multipart / form-data. Я могу получить один единственный лист (изображение) и сохранить его, но после того, как я добавил четыре строковых параметра, я не знаю, как их получать и обрабатывать.
Я попытался добавить атрибут [FromBody] к своим параметрам, но он все еще не работает.
Вот некоторые из моего кода:
[Route("addbook")]
public ActionResult AddBook([FromBody] string ownerid,string bookName,string bookAuthor,string bookIntro)
{
IFormFile file = Request.Form.Files["bookcover"];
// process the file...
// the following code can't work!!!!
Book newBook = new Book {
BookID = Guid.NewGuid().ToString("N"),
Name = bookName,
Author = bookAuthor,
OwnerID = ownerid,
Introduce = bookIntro,
UploadTime = DateTime.Now,
BookCover = filename
};
//save them to database...
}
Я хочу сохранить файл, прочитать строку и сохранить их в базе данных.
Спасибо за помощь. Фрэнк.
Комментарии:
1. Пожалуйста, предоставьте свой код javascript
2. Вот некоторые из моего js-кода, они из WeChat miniapp: wx.uploadFile({ url: app.GlobalData.bookUrl ‘addbook’, заголовок: { ‘content-type’: ‘multipart / form-data’ }, Путь к файлу: this.data.bookCoverPath, имя: ‘bookcover’, FormData:{ BookName: ‘test’, Автор книги: ‘test’, идентификатор владельца: app.GlobalData.OpenID, bookIntro: ‘test’ }, успех (res) {//…} })
3. Кажется, что я могу получить файл и другие параметры, когда я не использую прокси nginx, но когда я использовал прокси nginx, я бы потерпел неудачу, код состояния ответа — 502 bad gateway или 400 bad request. Я могу делать другие вещи с помощью прокси-сервера nginx, кроме загрузки flie. Я не знаю почему. Мне не хватает какой-либо конфигурации с nginx?