Я просмотрел сообщения здесь и в Google и, похоже, не могу найти решение этой проблемы.
Я хочу сделать это без использования Node.js, если смогу. Если не могу, то сделаю это, потому что это требуется.
Я знаю, как загрузить такой файл, как:
[HttpPost]
public HttpResponseMessage PostEncryption()
{
var httpPostedFile = HttpContext.Current.Request.Files["file"];
//do some editing on the file
}
И я знаю, как скачать файл через get
private HttpResponseMessage Get(HttpResponseMessage response)
{
var txtString= "a bunch of random stuff";
var result = Request.CreateResponse(HttpStatusCode.OK);
result.Content = new StringContent(txtString, Encoding.UTF8, "application/txt");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "test.txt"
};
return result;
}
Я пытаюсь вытащить файл, затем выполнить некоторую обработку и принудительно загрузить файл в браузере. Возможно ли это через веб-API, и если да, то как мне это сделать?
Вот мой код, который в настоящее время запрошен slaks, на данный момент я просто пытаюсь получить метод публикации для загрузки файла ...
[HttpPost]
public HttpResponseMessage Post()
{
var txtString= "a bunch of random stuff";
var result = Request.CreateResponse(HttpStatusCode.OK);
result.Content = new StringContent(txtString, Encoding.UTF8, "application/txt");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "test.txt"
};
return result;
}
$('#uploadFile').on('click', function () {
var data = new FormData();
var files = $("#file").get(0).files;
// Add the uploaded content to the form data collection
if (files.length > 0) {
data.append("file", files[0]);
}
$.ajax({
type: "POST",
url: "/apifile/post",
contentType: false,
processData: false,
data: data
});
});
Я попробовал это, и файл никогда не загружается, но если я просто использую его, он загружается нормально.
Что вы видите на вкладке «Сеть»? Как вы делаете запрос? Покажите нам свой код.
Хорошо, читая, я обнаружил, что не могу использовать ajax для загрузки файла, это правильно? Как я могу это обойти?
Не используйте AJAX. Вместо этого сделайте отправку формы.
@SLaks omg, я просто усложнял задачу, чем должно было быть. Спасибо, мужик





Вы можете вернуть любой результат, какой захотите, от любого действия; вы можете объединить эти два примера.