- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 IIS7 来回传输文件。
我的操作方法如下:
public ActionResult GiveItBack()
{
var inFile = Request.Files[0];
var fileStream = new FileStream(Path.GetTempPath() + "uploadedFile.tif", FileMode.OpenOrCreate);
inFile.InputStream.Position = 0;
inFile.InputStream.CopyTo(fileStream);
return new FileStreamResult(fileStream, "image/tiff");
}
我用 fiddler 调用它,文件在服务器上上传和创建,但 fiddler 显示“响应没有正文”消息而不是图像(文件确实是一个 tif)。原始响应是
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: image/tiff
Server: Microsoft-IIS/8.0
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcQXJiZWl0c2JlcmVpY2hcUHJvamVrdGUgLSBmcmVtZFxBbXBzMyBQaXBlc1xLaXR0ZWxiZXJnZXIuQU1QUzMuV2ViU2VydmljZVxDb21tYW5kQ2hhaW5cRG9pbmc=?=
X-Powered-By: ASP.NET
Date: Wed, 14 Jun 2017 12:48:22 GMT
Content-Length: 0
如您所见,内容长度为零。为什么图像不回来?
最佳答案
在返回结果之前,您应该将 fileStream
实例的 Position 重置回 0。
Remarks
Copying begins at the current position in the current stream, and does not reset the position of the destination stream after the copy operation is complete.
另外添加一个try/catch
,如果FileStream
有异常就处理掉,然后重新抛出。
有变化的代码
public ActionResult GiveItBack()
{
var inFile = Request.Files[0];
var fileStream = new FileStream(Path.GetTempPath() + "uploadedFile.tif", FileMode.OpenOrCreate);
try {
inFile.InputStream.Position = 0;
inFile.InputStream.CopyTo(fileStream);
fileStream.Position = 0;
return new FileStreamResult(fileStream, "image/tiff");
} catch {
fileStream.Dispose();
throw;
}
}
关于c# - FileStreamResult 不返回主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44545506/
我正在尝试通过 IIS7 来回传输文件。 我的操作方法如下: public ActionResult GiveItBack() { var inFile = Request.Files[0];
我在我的 MVC Controller 上执行了以下操作: public async Task Contact() { IAmazonS3 s3Client
我有一个目录“下载”,其中有我们的客户可以下载的静态文件。我正在使用以下 ActionLink 调用文件: @Html.ActionLink("Download Example", "Download
我的图像由返回 FileStreamResult 的 Controller 操作提供。 我根据通过图像标签传递的 id 加载图像: 我的代码是: public FileResult Get(int
我正在使用第三方库,其中一种方法返回 FileStreamResult。 public FileStreamResult GenerateFile(OutFormat format, dynamic
我正在尝试使用 iTextSharp 打开 PDF 文件,将数据集添加到文件以预填充数据,然后将其保存到流中以便我可以将其显示给用户。我不想将它保存在本地文件中。我不断收到错误消息“无法访问已关闭的流
我的问题类似于这个问题: Does File() In asp.net mvc close the stream? 我在 C# MVC 4 中有以下内容。 FileStream fs = new Fi
我对 jquery 和 asp.net mvc 很陌生。我的问题是我正在调用返回 FileStreamResult 的 Controller 中的方法。这工作正常,但是当我用 jQuery post
我用这段代码改变了图像的大小。但此方法返回 FileStreamResult。我想将 FileStreamResult 转换为 IFromFile。我该怎么做? 注意:我正在使用 CoreCompat
在 MVC 中,有没有办法在我的查询成功时返回一个 FileStreamResult,但如果不成功,就在 ViewBag 中返回一个有错误的 View 。像这样.... public File
我有一个从字节数组中获取的 FileContentResult,我想将其转换为 FileStreamResult。这可能吗?如果是这样,如何? 最佳答案 首先,我对 MVC 了解不多,但听起来您不需要
我正在编辑一些代码,有一种方法返回 FileContentResult 类型。我从服务中获取流,所以对我来说,将返回类型更改为 FileStreamResult 会更方便。 我应该将流转换为数组以返回
我正在使用 MVC3 返回在代码中创建的临时文件。然后,我使用 FileStreamResult 将此文件流式传输回客户端。但是,由于这是我不再需要的临时文件,我想清理该文件。我不知道该怎么做,因为我
是否可以使用 ajax 调用将 FileStreamResult 作为下载文件打开? Controller 方法 public FileStreamResult DownloadPDF() {
这个问题在这里已经有了答案: FileResult with MemoryStream gives empty result .. what's the problem? (2 个答案) 关闭去年。
问题的第一部分: 我在数据库中有信息,我想从数据库中获取它并将其保存为 .txt文件给客户。 我已经用常规的 asp.net 完成了。但在 mvc 中还没有。我的信息不是图像。这些关于人民的信息 我看
我在我的 asp.net 核心 api Controller 中有 return new FileStreamResult(excel, "application/ms-excel")
我有一个简单的 Controller ,它返回图像: public class ImageController : Controller { [AcceptVerbs(HttpVerbs.Ge
我正在开发用于处理文件的 Web API。我正在尝试从 azure blob 存储下载文件并将其作为响应返回。对于开发 API,我使用 FastEndpoints。 在 Stack Overflow
我有一个 IEnumerable ,根据 yield 进行“流式传输”来自方法的语句。现在我想将此枚举转换为 Stream将其用作流结果。我有什么想法可以做到这一点吗? 我最后想做的是返回 Strea
我是一名优秀的程序员,十分优秀!