【问题标题】:access HttpPostedFile without saving, get error "Request for the permission of type 'System.Security.Permissions.FileIOPermission..."在不保存的情况下访问 HttpPostedFile,得到错误“请求类型'System.Security.Permissions.FileIOPermission...的权限...”
【发布时间】:2011-08-20 04:02:14
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您可以将文件读入字节流,然后将字节流输入 FileInfo 类。但是如果 Asp.Net 没有临时目录的写入权限,权限可能会阻止您读取字节流。我们能看到引发错误的代码吗?

    编辑

    我在读取 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 以查看它是否返回了您正在寻找的正确文件名?

    【讨论】:

    • 谢谢乔希,你是对的。我将文件名从 HttppostedFile 传递到 FileInfo 类。你能不能指导我如何读取文件名的usign字节串并输入FileInfo类?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多