Request.Content.IsMimeMultipartContent() завершается с ошибкойC#

Место общения программистов C#
Ответить
Anonymous
 Request.Content.IsMimeMultipartContent() завершается с ошибкой

Сообщение Anonymous »

Я пытаюсь загрузить файл, используя тип ввода Html2 = «file» и запрос http.post angular2. Когда запрос достигает веб-API, он завершается с ошибкой

Request.Content.IsMimeMultipartContent()


Это нет сбоя при отправке запроса с помощью Postman (когда я не включаю Content-Type в заголовке, потому что об этом позаботится почтальон).

См. мой код:
Html:




Сервисная функция:

uploadFile(event) {
let fileUploadUrl = this.webApiFileUploadURL;
let fileList: FileList = event.target.files;
if(fileList.length > 0) {
let file: File = fileList[0];
let formData:FormData = new FormData();
formData.append('uploadFile', file, file.name);
let headers = new Headers();
headers.append('Content-Type', 'multipart/form-data');
headers.append('Accept', 'application/json');
let options = new RequestOptions({ headers: headers });
this._http.post(`${this.webApiFileUploadURL}`, formData, options)
.map(res => res.json())
.catch(error => Observable.throw(error))
.subscribe(
data => console.log('success'),
error => console.log(error)
)
}


И запрос на публикацию WebApi (сбой при
if (!Request.Content.IsMimeMultipartContent()) ):

public async Task PostFormData()
{

// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent()) // Fails here
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}

string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);

try
{
// Read the form data.
await Request.Content.ReadAsMultipartAsync(provider);

// This illustrates how to get the file names.
foreach (MultipartFileData file in provider.FileData)
{
Trace.WriteLine(file.Headers.ContentDisposition.FileName);
Trace.WriteLine("Server file path: " + file.LocalFileName);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (System.Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
}


Подробнее здесь: https://stackoverflow.com/questions/487 ... tent-fails
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»