回答
这是我如何做这样的事情,但我知道文件的名称。
private void LoadAttachment()
{
byte[] ImageData = ... get data from somewhere ...
Response.Buffer = true;
String filename = "itakethis.fromdatabase";
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
Response.ContentType = GetMimeType(filename);//you can try to extrapolate it from file extension
if(ImageData.Length > 0)
Response.BinaryWrite(ImageData);
else
Response.BinaryWrite(new byte[1]);
Response.Flush();
ApplicationInstance.CompleteRequest();
}
`
这里有一些有用的东西,但是OP询问'Stream'而不是'byte []',并且既然你检查了'.Length',你的解决方案将不会被翻译。 – 2010-10-15 16:19:15
@Kirk Woll,对不起,我的错,我认为问题是物理上保存文件,而不是直接使用流。无论如何,流有一个长度属性。如果问题是直接使用流,那么答案是否定的:bynarywrite以字节数组为参数 – 2010-10-18 07:58:41
您可以使用MemoryStream
仅在RAM中使用文档。
不幸的是,大多数程序(Word,Excel,记事本,...)需要一个文件名来打开一个文件。所以我认为你的问题没有真正的解决方案。
唯一的想法是编写一个File System Filter Driver,它返回一个虚拟文件名的MemoryStream,但该驱动程序必须用C++编写,并不是最简单的一个。
你为什么不能保存,这是方法被调用到一个空aspx页面(我的意思是,没有任何形式的HTML标记除了< @Page ... />行)文件?
我以前用GetTempFilename
效果很好。我不记得它在哪一类,可能是System.Environment
或File
本身。无论如何,您可以确定该文件将位于系统定义的临时文件夹中,因此您可以在完成该文件后安全地删除该文件。
- 1. 打开文件并阅读java文件
- 2. 打开并阅读2GB csv
- 3. 打开并阅读在ASP
- 4. 打开并阅读txt文件?
- 5. Perl - 打开并阅读.ppt/.pptx文件?
- 6. 阅读姆姆流打开cv
- 7. 打开并阅读文本文件使用CSOM位于SharePoint文档库中
- 8. 阅读缓冲流网站并打开第一个结果Android
- 9. 如何打开PDF并阅读它?
- 10. 如何以全屏阅读视图打开Microsoft Word文档?
- 11. 阅读并显示Word文档
- 12. 删除文档并阅读其字段
- 13. 如何使用Scrapy打开文件流进行阅读?
- 14. 我该如何打开资源文件在Android中阅读
- 15. 为阅读和写作打开文件?
- 16. 文件无法打开阅读
- 17. 阅读文件内容与ifstream打开
- 18. android无法打开文件阅读
- 19. 无法打开模型文件阅读
- 20. 阅读JSON文档并在Rails中创建一个新文档
- 21. 打开源PDF阅读器
- 22. 使用Perl打开并阅读很多文件,结尾相同
- 23. 阅读并在Matlab中打开.pat文件
- 24. 打开并阅读不同目录中的几个文件
- 25. 打开并阅读python中的excel .xlsx文件
- 26. 阅读.ods文件并在浏览器中打开链接
- 27. 强制打开并阅读来自php的zip文件
- 28. 如何打开并阅读Blackberry的.bug文件?
- 29. 我想打开并阅读ubr文件格式
- 30. 打开文件并在一行中阅读内容?
这是什么类型的文件?你如何“打开”它?什么阻止你将文件保存到临时目录? – Jens 2010-10-15 12:03:56
如果你不告诉我们,我们不知道你有什么文件。这使得很难找到解决方案。 – 2010-10-15 12:07:59
现在让它成为PDF文档 – Nits 2010-10-15 12:11:41