none
Fileupload不能上传文件 RRS feed

  • 问题

  • 我写一个上传图片的程序,如下:

     protected void picbtn_Click(object sender, EventArgs e)
            {
                if (pic_upload.HasFile)
                {
                    if (checkup(pic_upload.FileName))
                    {
                        string filepath = "~/pic/" + pic_upload.FileName;
                        pic_upload.SaveAs(MapPath(filepath));
                        string strConnection = WebConfigurationManager.ConnectionStrings["gdmskConnectionString"].ConnectionString;
                        SqlConnection con = new SqlConnection(strConnection);
                        String strSQL = "INSERT INTO [aera]([Pic]) VALUES (@Pic) WHERE Area_id=@Area_id ";
                        SqlCommand cmd = new SqlCommand(strSQL, con);
                        cmd.Parameters.AddWithValue("@Pic", filepath);
                        cmd.Parameters.AddWithValue("@Area_id", DropDownList3.SelectedValue);
                        using (con)
                        {
                            con.Open();
                            cmd.ExecuteNonQuery();
                            con.Close();
                            Label1.Text = "上传成功";


                        }
                    }
                }
            }
            bool checkup(string filename)
            {
                string ext = Path.GetExtension(filename);
                switch (ext.ToLower())
                {
                    case ".jpg":
                        return true;
                    case ".jpeg":
                        return true;
                    case ".bmp":
                        return true;
                    case ".png":
                        return true;
                    default:
                        return false;
                }

            }

    现在是这个程序不报错,但是不能上传,PIC文件夹下得不到图片,数据库也没图片地址,我去掉文件类型检查函数checkup()和插入图片地址的那部分函数,还是不能上传,这是为什么?求各位版主和各位MVP给我帮忙解答,谢谢!

    • 已移动 孟宪会Moderator 2010年6月7日 13:10 (发件人:.NET Framework 一般性问题讨论区)
    2010年6月2日 7:51

答案

全部回复

  • 你好 你加断点 在   pic_upload.SaveAs(MapPath(filepath));这行开始逐步调试下 同时检查下  if (pic_upload.HasFile)
                {
                    if (checkup(pic_upload.FileName))
                    {
    这两个if语句在运行时是否有进入

    在断点调试时遇到任何错误贴上来这样就可以帮你分析了 因为我自己测试了下 是没有问题的

    根据你的描述我怀疑是这两个if都没有进入

     


    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年6月3日 1:45
    版主
  • 您好!我断点测试一下,从外边的if块就没有进入,您知道这是什么原因吗?谢谢!
    2010年6月5日 1:49
  • 你好!

         你检查一下要上传的那个文件是否存在?


    周雪峰
    2010年6月5日 6:02
    版主
  • 您好!文件存在,任何图片都不能上传
    2010年6月5日 8:36
  • 您好!版主,我知道为什么不能上传了,我把这个模块放进一个updatepanel里边了,去掉这个就正常了,请问这是为什么?
    2010年6月5日 8:42
  • 您好!版主,现在又出现问题, string strConnection =WebConfigurationManager.ConnectionStrings["gdmskConnectionString"].ConnectionString;

    这句会出:未将对象引用设置到对象的实例。

    我在百度上查了一下,没有找到解决的办法,命名空间我都引用了。

    2010年6月5日 9:14
  • 你好!

         你检查一下你的配置文件里的gdmskConnectionString节点,看看是否存在这个节点,注意大小写!


    周雪峰
    2010年6月5日 10:25
    版主
  • pic_upload.SaveAs(Server.MapPath(filepath));
    另外,检查pic/文件夹是否有匿名帐号写写入权限
    【孟子E章】
    2010年6月7日 13:10
    版主
  • 我之前也遇到过你的这个情况! 如果你没有设置 updatepanel的 triggers属性!

    你需要设置:

     <
    Triggers
    >
    <
    asp : PostBackTrigger ControlID ="BtnUpload" />
    </
    Triggers >

    关于在Updatepanel里面使用FileUpload上传文件失败的原因:http://www.cnblogs.com/jinho/archive/2010/04/05/1704744.html

     

    希望能对你有帮助!


    Anything Is Possible !
    2010年6月8日 6:37
  • 好的,谢谢你!
    2010年6月8日 14:30
  • 没什么问题,我重写一下连接字符串,解决了,谢谢您!
    2010年6月8日 14:31