上传代码:
                           string strPit="";
string strOne ="";
string strBit ="";
string strPath,strTemp,strFileName,strFullName;
int nTemp,nContent;
strPath = Request.PhysicalApplicationPath + "UpLoad\\";
if (this.File2 .PostedFile.FileName!="")
{
strTemp = this.File2.PostedFile.FileName;
nTemp = strTemp.LastIndexOf('.');
nContent = nTemp;
if (nTemp>0)
{
nContent = nTemp;
strTemp = strTemp.Substring(nTemp+1);
nTemp = strTemp.IndexOf('.');
}
strOne = this.File2.PostedFile.FileName.ToString();
strOne = strOne.Substring(strOne.LastIndexOf('\\')+1);
strFileName = strOne;
strFullName = strPath + strFileName;
this.File2.PostedFile.SaveAs(strFullName); strPit = "../"+ "UpLoad/"+ strOne;
strBit = (this.File2.PostedFile.ContentLength/1024)+"KB";
                                     //strOne  就是上传的文件名加后缀打开文件
                                     this.hpkUp.Text = "查看附件";
this.hpkUp.NavigateUrl = dt.Tables["Table"].Rows[0]["Path"].ToString();
                        链接路径: http://192.168.1.2/Index/UpLoad/测试[2009]22号.doc出错
          
    上传的基本上都是WORD文档,文件名是汉字;英文;数字;字符混淆的,文件都能上传,但是打开的时候时常会出现找不到文件的现象!
           文件名中的汉字没有经过转换处理,如果需要转换,帮忙写个转换的语句,谢谢!
        

解决方案 »

  1.   

    Server.UrlEncode(dt.Tables["Table"].Rows[0]["Path"].ToString());
      

  2.   

    建议保存上传文件时使用日期作为文件名。下载的时候如果需要中文名称可以使用
    HttpContext.Current.Response.AddHeader()方法指定下载的文件名 string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssms" + 随机数或者不重复字符) + fileType;
     string SavePath = Server.MapPath("~/Upload/" + newFileName);
    //创建目录
    if (!Directory.Exists(Server.MapPath("~/Upload/BugAttachment/")))
    {
       Directory.CreateDirectory(Server.MapPath("~/Upload/BugAttachment/"));
    }
    Request.Files[i].SaveAs(SavePath);