同样的上传程序,在同事的win2000下上传没什么题,在我和另一同事的2003系统里总是报错“未将对象引用设置到对象的实例”。原因好像是因为enctype="multipart/form-data"。但为什么2000里没什么问题,应该怎么解决啊?

解决方案 »

  1.   

    enctype="multipart/form-data
    因为这句话所以在2003里报错吗?
    不可能吧
    上传的时候必须加这句话吧
      

  2.   

    你试试我这种方法吧
    ASPX页面放控件
    <INPUT id="BugFile" type="file" size="47" name="BugFile" runat="server">CS里面写下面这样的程序//文件上传开始
    DateTime nowdt=DateTime.Now;
    if (BugFile.PostedFile.ContentLength>0)
    {
    string strSaveDir = "./uploadFile/";
    string strName=BugFile.PostedFile.FileName;
    int intExt = strName.LastIndexOf(".");//取得文件扩展名
    string strExt = strName.Substring(intExt);

    DateTime datNow = DateTime.Now; 
    strNewName = datNow.DayOfYear.ToString()+datNow.Second.ToString() + BugFile.PostedFile.ContentLength.ToString() + strExt;
    BugFile.PostedFile.SaveAs(Server.MapPath(strSaveDir + strNewName)); 
    }
    //文件上传结束
      

  3.   

    完全控制权限够不,asp.net用户归administrator组行不,还是老样子,2000下一切正常
      

  4.   

    private void btnUpFile_Click(object sender, System.EventArgs e)
    {
    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());
    } }
    }