【问题标题】:Error : `Could not find file 'C:\Program Files (x86)\IIS Express\button.png'`错误:`找不到文件'C:\Program Files (x86)\IIS Express\button.png'`
【发布时间】:2014-05-10 01:25:29
【问题描述】:

我在Asp.Net WebFrom 中使用FileUpload。 我从计算机上传任何带有C# 的文件。

 string path = FileUpload1.PostedFile.FileName;
 string str = Path.GetFileName(path);

FileStream fs = new FileStream(str, FileMode.Open, FileAccess.Read);//我在这一行得到错误。错误:Could not find file 'C:\Program Files (x86)\IIS Express\button.png'

实际上这是我的文件路径:'C:\Users\Ceyhun\Downloads\button.png'

谁能说这可能是什么问题?

【问题讨论】:

    标签: c# asp.net upload


    【解决方案1】:

    您要做的是获取客户端上传的文件的文件名,并尝试使用该文件名打开文件。因为您正在运行 IIS Express(从 c:\program 文件运行),所以您的代码会在该位置查找该文件,但该文件不存在。

    该文件存在于客户端计算机上,您的代码访问它的唯一方法是通过 FileUploadCONtrol。

    您不能直接从客户端计算机中引用该文件。 FileUpload 控件将为您提供以字节为单位的文件内容或允许您直接将文件保存在服务器上。

    例如

    string filename = Path.GetFileName(FileUpload1.FileName);
    FileUpload1.SaveAs(Server.MapPath("~/") + filename);
    

    以字节数组的形式获取文件内容:

    byte[] fileBytes = FileUpload1.FileBytes;
    

    【讨论】:

    • 我把它保存在我的服务器上,现在我想把它保存在 sql 数据库中。现在我应该将它从我的服务器添加到 sql 数据库吗?然后添加到数据库后它会保留在我的服务器中吗?抱歉,可能是我弄糊涂了。
    • 所以文件上传控件的文件内容以字节为单位。您不一定需要将其存储在您的网络服务器中。您可以直接将字节保存到数据库中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多