回 帖 发 新 帖 刷新版面

主题:关于上传的问题求助

我用c#做上传和下载的的时候
用的是HTML的File Field控件 和web窗体的Button控件
现在我的代码是
private void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            // 在此处放置用户代码以初始化页面
            if(!Page.IsPostBack)
            {
                this.fileDiv.InnerHtml = this.getFileList();
            }
            
        }


        //列出已经上传的文件
        public string getFileList()
        {
            string m_DirPath =Server.MapPath(@"\newweb\UpFile\");
            string[] m_FileLst = Directory.GetFiles(m_DirPath,"*.*");

            StringBuilder strBld = new StringBuilder();

            string strTmp = "";

            strBld.Append("<table width=100% border=0 cellpadding=0 cellspacing=0>");
            strBld.Append("<tr>");
            strBld.Append("<td class=lsttitle>&nbsp;</td>");
            strBld.Append("<td class=lsttitle>&nbsp;文件名</td>");
            strBld.Append("<td class=lsttitle>&nbsp;删除</td>");
            strBld.Append("</tr>");

            for (int i=0;i< m_FileLst.Length;i++)
            {
                strTmp = Path.GetFileName(m_FileLst[i].ToString());
                strBld.Append("<tr>");
                strBld.Append("<td class=lstitem>&nbsp;");

                strBld.Append("<input type=\"checkbox\" name=\"FileChx\" value=\""+strTmp+"\">");
                strBld.Append("</td>");
                strBld.Append("<td class=lstitem>");
                strBld.Append(strTmp);
                strBld.Append("</td>");
                strBld.Append("<td class=lstitem>");
                strBld.Append("<a href=UpFile/"+strTmp+" target=\"_blank\">下载</a></td>");
                strBld.Append("</tr>");
            }
            strBld.Append("</table>");

            return strBld.ToString();
        
        }

private void Button2_Click(object sender, System.EventArgs e)
        {
            try
            {
                string str=this.File1.PostedFile.FileName;
                if(str.LastIndexOf ("\\")>1)
                {
                    str=@"\newweb\UpFile\"+str.Substring (str.LastIndexOf ("\\")+1);
                    
                    this.File1.PostedFile.SaveAs (Server.MapPath (str));

                    this.fileDiv.InnerHtml = this.getFileList();
                }
                else
                {                    
                    Response.Write ("<script>window.alert('请选择要上传的文件!');<script>");
                }
            }
            catch(Exception err)
            {
                Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");

            }

        }
不知道这么的我上传后一点反映也没有
我到upFile文件夹里也看不到上传的文件。

回复列表 (共11个回复)

沙发

改成这样试一下:

private void Button2_Click(object sender, System.EventArgs e)
        {
            try
            {
                string str=this.File1.FileName;
                if(str.LastIndexOf ("\\")>1)
                {
                    str=@"\newweb\UpFile\"+str.Substring (str.LastIndexOf ("\\")+1);
                    
                    this.File1.SaveAs (Server.MapPath (str));

                    this.fileDiv.InnerHtml = this.getFileList();
                }
                else
                {                    
                    Response.Write ("<script>window.alert('请选择要上传的文件!');<script>");
                }
            }
            catch(Exception err)
            {
                Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");

            }

        }

板凳

楼上的兄弟啊
你这样改运行不了

3 楼

上一贴中没有注意到一点,那就是:
上传路径设定有问题,那个LastIndexOf没有用,因为FileName属性不含路径。

再改:
private void Button2_Click(object sender, System.EventArgs e)
        {
            try
            {
                string str=this.File1.FileName;
                    str=@"\newweb\UpFile\"+str;
                    
                    this.File1.SaveAs (Server.MapPath (str));

                    this.fileDiv.InnerHtml = this.getFileList();
            }
            catch(Exception err)
            {
                Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");

            }

        }

4 楼

还是不行啊
提示 “System.Web.UI.HtmlControls.HtmlInputFile”并不包含对“FileName”的定义

5 楼

晕,我举例用的是System.Web.UI.WebControls.FileUpload。

6 楼

还请楼上的朋友帮我,
那我应该这么改呢?
我在这里先谢谢您了
在线等

7 楼

我是初学者,
还望您能详细点,拜托了
谢谢了

8 楼

如果非要用HtmlInputFile的话,

private void Button2_Click(object sender, System.EventArgs e)
        {
            try
            {
                string str=this.File1.PostedFile.FileName;
                    str=@"\newweb\UpFile\"+str;                    
                    this.File1.PostedFile.SaveAs (Server.MapPath (str));

                    this.fileDiv.InnerHtml = this.getFileList();
             }
            catch(Exception err)
            {
                Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");

            }

        }

9 楼

还是和原来一样
上传没反映
文件里也是空的
我太笨了

10 楼

先看一下这个按键事件能否正确触发。

我来回复

您尚未登录,请登录后再回复。点此登录或注册