Tôi đang cố gắng trả lại hình ảnh từ tuyến máy chủ, nhưng tôi nhận được dữ liệu là 0 byte. Tôi nghi ngờ nó có cái gì để làm với cách tôi đang sử dụng MemoryStream
. Dưới đây là mã của tôi:Không nhận dữ liệu từ đường C#
[HttpGet]
[Route("edit")]
public async Task<HttpResponseMessage> Edit(int pdfFileId)
{
var pdf = await PdfFileModel.PdfDbOps.QueryAsync((p => p.Id == pdfFileId));
IEnumerable<Image> pdfPagesAsImages = PdfOperations.PdfToImages(pdf.Data, 500);
MemoryStream imageMemoryStream = new MemoryStream();
pdfPagesAsImages.First().Save(imageMemoryStream, ImageFormat.Png);
HttpResponseMessage response = new HttpResponseMessage();
response.Content = new StreamContent(imageMemoryStream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = pdf.Filename,
DispositionType = "attachment"
};
return response;
}
Qua gỡ lỗi Tôi đã xác minh rằng phương pháp PdfToImages
là làm việc và rằng imageMemoryStream
được lấp đầy với các dữ liệu từ dòng
pdfPagesAsImages.First().Save(imageMemoryStream, ImageFormat.Png);
Tuy nhiên trong việc điều hành nó, tôi nhận được một tập tin đính kèm đó là được đặt tên đúng nhưng là 0 byte. Tôi cần thay đổi gì để nhận được toàn bộ tập tin? Tôi nghĩ rằng nó là một cái gì đó đơn giản nhưng tôi không chắc chắn những gì. Cảm ơn trước.
Có thể bạn phải đặt vị trí phát là 0? 'imageMemoryStream.Position = 0;' –