代码在本机运行没有问题,但是在别的机器调用本机的程序运行时,在选择了要上传的文件后报错,读取路径的一部份出错,后来发现是要在本机的硬盘上要有相同的目录才行。
如我选择的是c:\abc\1.jpg则要在本机也要有个c:\abc的目录才行,而文件也没有传到服务器上。好像上传的file控件读的是我代码所在机器的路径,还不是客户端的路径我读文件是用的file.PostFile.FileName. 
form的encType="multipart/form-data"也设了
这样应该是读的客户端路径才对啊,为什么会读到服务器端呢?
还请高手指教,急

解决方案 »

  1.   

    我知道是代码有问题,但是查不出来,因为在本机运行完全正常
    上面写错了,是file.PostedFile.FileName
    另,我用的是ftp上传,但是代码应该还没有执行到连接ftp时好像就出错了,他说找不到路径,如果我在本机上建一个相同的目录的话代码执行就没问题,但是文件没有传上去
      

  2.   

    我也出现过这样的问题~~但是最终解决出来还是路径的问题~~在本机上运行代码没问题的话~那就是路径的问题了 关键这个MapPath   string filePath="",fileExtName="",mFileName,mPath;
    System.Text.StringBuilder strMsg = new System.Text.StringBuilder("上传的文件信息:<hr color=red>");
    if("" != fileUp.PostedFile.FileName)
    {
    filePath =fileUp.PostedFile.FileName;//取得文件路径
    fileExtName= filePath.Substring(filePath.LastIndexOf(".")+1); try
    {
    //取得与 Web 服务器上的指定虚拟路径相对应的物理文件路径。
    mPath=Server.MapPath("../../../upfile/");
    mFileName=filePath.Substring(filePath.LastIndexOf("\\")+1);;//取得文件名
    strMsg.Append("上传的文件类型:" + fileUp.PostedFile.ContentType.ToString() + "<br>");
    strMsg.Append("客户端文件地址:" + fileUp.PostedFile.FileName + "<br>");
    strMsg.Append("上传文件的文件名:" + mFileName + "<br>");
    strMsg.Append("上传文件的扩展名:" + fileExtName);
    //保存上传文件到指定的目录
    fileUp.PostedFile.SaveAs(mPath + mFileName);
    strState.Text = strMsg.ToString();
    }
    catch(Exception error)
    {
    Response.Write(error.ToString());
    }
      

  3.   

    我这个问题是在选择文件时就出错了,并没有到保存那一步
    在选择了文件后,它是到服务器上找这个路径,而不是在客户端,所以就会出现异常"找不到路径的一部分"
    实在是想不出哪里错了
    是不是web.config文件要配置什么啊?
      

  4.   

    总算找到问题所在了,因为我是用ftp上传,在选择了文件后把该目录下所有相同扩展名的文件都上传
    我是用
    string[] fileNames = Directory.GetFiles(fPath);
    int num=0;
    string file1="";
    string exName="";
    foreach (string  file in fileNames)
    {
       exName =file.Substring(file.Length-3);

      //if(exName.ToUpper() !="PDG")
    if(exName.ToUpper() =="PDG")
    {
    num=num+1; }
    file1 = file.Trim();

    来读取文件数量的
    是不是Directory.GetFiles(fPath);读的是服务器的路径,要怎么样才能读到客户端的目录?
      

  5.   

    不是路径的问题
    我要跟据我选择的那一个文件得出它所在的目录的路径,然后通过
    string[] fileNames = Directory.GetFiles(fPath);来读出这个路径下的所有文件各的一个集合
    但是这种方法好像只能读服务器端的,有什么办法可以读到客户端吗?