Неподдерживаемый HTTP-ответ типа носителя при загрузке файла с помощью API C#.C#

Место общения программистов C#
Ответить
Anonymous
 Неподдерживаемый HTTP-ответ типа носителя при загрузке файла с помощью API C#.

Сообщение Anonymous »

Я использую директиву angular и oi.file.js из https://github.com/tamtakoe/oi.file

Мой html выглядит так:< /p>






Контроллер Angular:

$scope.file = {};

$scope.options = {
change: function (file) {
console.log($scope.file);
file.$upload('api/fileupload', $scope.file);
console.log($scope.file);
}
};


И контроллер API C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web;
using System.Web.Http;
using Ttmc.Core.Database;
using Ttmc.Core.Files;
using Ttmc.WebApp.Common;

namespace Ttmc.WebApp.Controllers
{
public class FileUploadController: ApiController
{
private readonly FileRepository fileRepository;
private readonly LogHelper logHelper;
private readonly SqlConnectionFactory sqlConnectionFactory;

public FileUploadController()
{
logHelper = new LogHelper();
sqlConnectionFactory = new SqlConnectionFactory();
fileRepository = new FileRepository(new DatabaseFileRepository(sqlConnectionFactory), sqlConnectionFactory);
}

[HttpPost]
public HttpResponseMessage Post(FileController.PostFile postFile)
{
var request = HttpContext.Current.Request;
HttpResponseMessage result = null;
logHelper.LogExecute(() =>
{
if (request.Files.Count == 0)
{
result = Request.CreateResponse(HttpStatusCode.BadRequest);
}
var resultFiles = new List();
using (var connection = sqlConnectionFactory.Create())
using (var transaction = connection.BeginTransaction())
{
for (var i = 0; i < request.Files.Count; i++)
{
var postedFile = request.Files;
var id = fileRepository.AddFile(postedFile.InputStream, postedFile.FileName, postFile.OrderId,
postFile.RootFolderName, connection, transaction);
resultFiles.Add(fileRepository.GetInfo(id, connection, transaction));
}
transaction.Commit();
}
result = Request.CreateResponse(HttpStatusCode.Created, resultFiles);
});

return result;
}

public class PostFile
{
public Guid OrderId { get; set; }
public string RootFolderName { get; set; }
}
}
}


Когда я пытаюсь загрузить файл, я получаю ответ «Неподдерживаемый тип носителя».

POST /api/fileupload HTTP/1.1
Host: localhost:12345
Connection: keep-alive
Content-Length: 283
Cache-Control: no-cache
Pragma: no-cache
Origin: http://localhost:12345
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary6wBPmLUA5JPOBZYm
Accept: */*


Подробнее здесь: https://stackoverflow.com/questions/212 ... -sharp-api
Ответить

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

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

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

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

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