none
asp.net file exist()权限问题怎么解决? RRS feed

  • 问题

  • 在自己电脑上发布了个asp.net web项目,但用别人电脑来访问,不能上传图片。用的 File Upload 控件。就在判断该文件是否存在,总是false,有人说权限问题 。?

     string fileName = this.upImagePostedFile.FileName;   ------------获得控件里路径

         //再判断一下该文件是否存在以确保用户不是误输入
              
              if (System.IO.File.Exists(fileName))  ---------------这里总返回false
              {.......................}

     

     

     

    2010年5月18日 7:38

答案

  • 你好 LTo 有一点你需要明白 你验证的是服务器上是否存在客户端上传的文件 而你那个属性获得的仅是文件名而已,你需要把客户端和服务器端分清楚就明白了
    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年5月18日 8:59
    版主
  • string fileName = this.upImagePostedFile.FileName;   

    注意这里获取的路径是客户端的路径,想想为什么别人的电脑访问就不行了?因为你的自己电脑刚好客户端和服务器是同一个,而别人的就不是了

    服务端根本就不用去判断这个 fileName 是否存在,从服务端角度来说,未保存钱,这个文件在服务器中肯定不存在!

    你要做的事情就是保存这个文件

    string serverFilePath = Path.Combine(Server.MapPath("~"), Path.GetFileName(this.upImagePostedFile.FileName)); // 假设存在网站根目录下

    this.upImagePostedFile.SaveAs(serverFilePath);


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年5月18日 13:31
  • 在你上传到server的那个文件夹加个account。

    IIS_IUSERS,添加上modify的权限。

    试试吧。


    别人笑我忒疯癫,我笑别人看不穿; 不见五陵豪杰墓,无花无酒锄作田。
    2010年5月19日 5:16

全部回复

  • 你这样判断肯定不行,

    this.upImagePostedFile.FileName获得的是一个文件名,并不包括路径,

    你应该根据文件名判断你服务器上的文件是否存在,如果不存在,调用    FileUpload1.SaveAs保存文件

     


    努力+方法=成功
    2010年5月18日 8:00
  • //在你的WEB网站下面有一个image文件夹
    protected void Button2_Click(object sender, EventArgs e)
      {
            string name = FileUpload1.FileName;
        if (!System.IO.File.Exists(Server.MapPath("image/" + name)))
        {
          FileUpload1.SaveAs(Server.MapPath("image/" + name));
        }
        else
        { 
          //表明同名文件已经存在
        }
      
      }

    努力+方法=成功
    2010年5月18日 8:12
  • 你好 LTo 有一点你需要明白 你验证的是服务器上是否存在客户端上传的文件 而你那个属性获得的仅是文件名而已,你需要把客户端和服务器端分清楚就明白了
    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年5月18日 8:59
    版主
  • string fileName = this.upImagePostedFile.FileName;   

    注意这里获取的路径是客户端的路径,想想为什么别人的电脑访问就不行了?因为你的自己电脑刚好客户端和服务器是同一个,而别人的就不是了

    服务端根本就不用去判断这个 fileName 是否存在,从服务端角度来说,未保存钱,这个文件在服务器中肯定不存在!

    你要做的事情就是保存这个文件

    string serverFilePath = Path.Combine(Server.MapPath("~"), Path.GetFileName(this.upImagePostedFile.FileName)); // 假设存在网站根目录下

    this.upImagePostedFile.SaveAs(serverFilePath);


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年5月18日 13:31
  • 在你上传到server的那个文件夹加个account。

    IIS_IUSERS,添加上modify的权限。

    试试吧。


    别人笑我忒疯癫,我笑别人看不穿; 不见五陵豪杰墓,无花无酒锄作田。
    2010年5月19日 5:16
  •  string fileName = this.upImage.PostedFile.FileName;

    少加了个点

    2010年5月19日 7:01