访问HttpPostedFile而不保存,获取错误“请求类型'System.Security.Permissions.FileIOPermission ...的权限”

时间:2011-08-19 18:59:36

标签: c# asp.net

我们可以在不保存文件的情况下访问HttpPostedFile的上传文件。我试图读取文件的名称和大小,但得到错误“请求类型'System.Security.Permissions.FileIOPermission,mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败。< /强>“

它在本地主机上运行良好但在共享主机服务器(GoDaddy)上出现此错误。请指导我一个解决方案。我需要在保存之前阅读文件的一些属性。

由于

1 个答案:

答案 0 :(得分:2)

您可以将文件读入字节流,然后将字节流提供给FileInfo类。但是,如果Asp.Net没有对temp目录的写访问权限,则权限可能会阻止您甚至读取字节流。我们能看到引发错误的代码吗?

修改

我在读取FileInfo类时出错了。如果文件在服务器上物理指向,那将会起作用。您应该能够通过在已发布请求的Request.Files [0]上调用.FileName来获取文件的文件名。如果你想把它读入内存,它看起来像这样:

 byte[] fileData = null; 
 using (var binaryReader = new BinaryReader(Request.Files[0].InputStream)) { fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength); }

您是否尝试过查看Request.Files [0] .FileName以查看是否返回了您要查找的正确文件名?