Я пробую Tinypng, чтобы оптимизировать изображение. Но у меня есть ошибка 500, когда я попытался получить оптимизированный результат. У меня есть частная функция AYSNC для обработки оптимизации в соответствии с документом API. Входной файл должен быть httpposteedfile, и, похоже, у него нет проблем, возвращающего оптимизированный файл в переменную «поток», но когда getawater (). GetResult () на месте, он возвращает ошибку 500. < /P>
[HttpPost]
public ActionResult CreateMedia(MediaModel mediaModel)
{
HttpPostedFile file = System.Web.HttpContext.Current.Request.Files["mFile"];
var extension = Path.GetExtension(file.FileName);
if (mediaModel.Optimised && extension.ToLowerInvariant() != "pdf")
{
var filename = file.FileName;
var contentType = file.ContentType;
var stream = Optimise(file);
var stream2 = stream.GetAwaiter().GetResult();
var mediaFile = ConstructHttpPostedFile(stream2, filename, contentType);
mediaModel.ImageFile = mediaFile;
}
}
private async Task Optimise(HttpPostedFile file)
{
Tinify.Key = "";
var fs = file.InputStream;
var br = new BinaryReader(fs);
var bytes = br.ReadBytes((Int32)fs.Length);
var source = Tinify.FromBuffer(bytes);
var optimised = await source.ToBuffer();
return optimised;
}
< /code>
Я прошел через код. В частной функции он прошл без проблем и возвращал значение к переменной «потоке», но он бросает ошибку 500 в Stream2. Я не могу найти какую -либо информацию в Google и из документации API Tinypng.[HttpPost]
public async Task CreateProjectMedia(MediaModel mediaModel)
{
var file = System.Web.HttpContext.Current.Request.Files["mFile"];
var extension = Path.GetExtension(file.FileName);
if (projectMediaModel.Optimised && extension.ToLowerInvariant() != "pdf")
{
var filename = file.FileName;
var contentType = file.ContentType;
var fs = file.InputStream;
var br = new BinaryReader(fs);
var bytes = br.ReadBytes((Int32)fs.Length);
var source = Tinify.FromBuffer(bytes);
var optimised = await source.ToBuffer();
var mediaFile = ConstructHttpPostedFile(optimised, filename, contentType);
mediaModel.ImageFile = mediaFile;
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... he-async-c