none
上传文件路径问题 RRS feed

  • 问题

  • 问题描述:
    1、serverPath = Server.MapPath("~/FA/DDW");
    2、serverPath = @"\\192.168.1.100\Web\FA\DDW";
    上面1和2的代码是取服务器某个目录的地址。为什么第一种取法可以。但第二种取法程序报错:找不到网络名。

    而且我用第一种方法保存的路径舒值放在<a>标记里,单击无法弹出下载框,这是为什么?
    zy
    2009年5月21日 2:26

答案

  • 1.要弹出下载提示对话框见这个例子
    2.至于第二种方法我测试也是行的,当然你要保证你确实有这个共享目录并且你的帐号有写入权限
        protected void btnUpload_Click(object sender, EventArgs e)
        {
            Random fRandom = new Random();
            string fNewFileName;
            string fNewFilePath;
            for (int i = 0; i < Request.Files.Count; i++)
            {
                fNewFileName = string.Format("{0}.{1}", Guid.NewGuid(), Path.GetExtension(Request.Files[i].FileName));
                //fNewFilePath = Path.Combine(Server.MapPath("Images"), fNewFileName);
                fNewFilePath = Path.Combine(@"\\192.168.1.2\共享\肖小勇", fNewFileName);
                Request.Files[i].SaveAs(fNewFilePath);
            }
        }



    知识改变命运,奋斗成就人生!
    • 已标记为答案 张烨 2009年5月21日 5:18
    2009年5月21日 2:54
    版主

全部回复

  • 第一个链接地址应该是 服务器物理路径/FA/DDW 如果没有文件的话应该下不下来,我觉得这个地方应该是一个HTTP请求,当然没有文件的话就下载不了。

    第二个报错,你得看你的服务器有没有权限通过IP名称直接访问Web,不过我看你这里写的也有问题,前面直接写\\应该是访问这个网络的共享文件夹Web。

    低调,低调
    2009年5月21日 2:30
    版主
  • 你好,

    如果你使用的是ASP.NET Development Server,请使用调试功能,会发现两个serverPath的值是不一样的。
    谢谢!
    邹俊才
    2009年5月21日 2:34
    版主
  • 值是不一样,但第一个值我是不能用的。我必须是取服务器的地址。但现在就是不行。我的机器在别的机器上也能访问。这是为什么?我在IIS里也建了一个网站
    zy
    2009年5月21日 2:54
  • 1.要弹出下载提示对话框见这个例子
    2.至于第二种方法我测试也是行的,当然你要保证你确实有这个共享目录并且你的帐号有写入权限
        protected void btnUpload_Click(object sender, EventArgs e)
        {
            Random fRandom = new Random();
            string fNewFileName;
            string fNewFilePath;
            for (int i = 0; i < Request.Files.Count; i++)
            {
                fNewFileName = string.Format("{0}.{1}", Guid.NewGuid(), Path.GetExtension(Request.Files[i].FileName));
                //fNewFilePath = Path.Combine(Server.MapPath("Images"), fNewFileName);
                fNewFilePath = Path.Combine(@"\\192.168.1.2\共享\肖小勇", fNewFileName);
                Request.Files[i].SaveAs(fNewFilePath);
            }
        }



    知识改变命运,奋斗成就人生!
    • 已标记为答案 张烨 2009年5月21日 5:18
    2009年5月21日 2:54
    版主
  • 第一个是HTTP协议,第二个是File协议,访问的进程不一样,所以权限也不一样。条件满足的情况下,可是通用!
    邹俊才
    2009年5月21日 2:59
    版主
  • 谢谢大家的回复。现在问题已解决。原来是我把路径弄错了。网上共享的文件夹,路径应该是IP+共享文件夹名,可我却写成了如下:\\192.168.1.100\FA\DDW。如果我把DDW的上级FA文件夹也共享,那\\192.168.1.100\FA\DDW这个写法是对的。但实际情况是我没有共享FA文件夹。


    zy
    2009年5月21日 5:13