fileupload在服务器中不起作用

时间:2014-05-12 09:05:17

标签: asp.net file-upload sqlexception

当我在本地主机上运行此代码时,其工作正常,但在服务器上传时显示错误。

代码:

if (fUploadImg.HasFile)
    {
        try
        {
            if (System.IO.File.Exists(Server.MapPath("../Article/" + fUploadImg.FileName)))
            {
                ErrorMessage.Text = "exist file";
                fImgName = fUploadImg.FileName;
            }
            else
            {
                fUploadImg.SaveAs(Server.MapPath("../Article/" + fUploadImg.FileName));

                fImgName = fUploadImg.PostedFile.FileName;
            }
        }
        catch (Exception err)
        {
            ErrorMessage.Text = "error  " + err.Message;
        }
        finally
        {

        }
    }
    else
    {
        fImgName = "Article.png";
    }

    SqlConnection con = new SqlConnection(cData.constr);
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandText = string.Format("INSERT INTO tblArticle(aTitle,aText,aImg,aUrl,aDate,aDownlodable,aNote)VALUES(@title,@text,@imgN,@atachFn,@date,@down,@note)");
    cmd.Parameters.AddWithValue("@title", txtArticleTitle.Text.Trim());
    cmd.Parameters.AddWithValue("@text", CKEditor1.Text);
    cmd.Parameters.AddWithValue("@imgN", fImgName);
    cmd.Parameters.AddWithValue("@atachFn", fAtachName);
    cmd.Parameters.AddWithValue("@note", txtNote.Text);
    cmd.Parameters.AddWithValue("@date", date);
    cmd.Parameters.AddWithValue("@down", rdoDownloadable.SelectedValue);

    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    clearObject();

错误: '/'应用程序中的服务器错误。

参数化查询“(@title nvarchar(3),@text nvarchar(3),@imgN nvarchar(4000),@atac”需要参数“@imgN”,该参数未提供。

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:参数化查询“(@title nvarchar(3),@text nvarchar(3),@imgN nvarchar(4000),@atac”需要参数“@imgN”,但未提供该参数。

来源错误:

Line 133:        

Line 134:        con.Open();

Line 135:        cmd.ExecuteNonQuery();

Line 136:        con.Close();        

Line 137:        clearObject();          

请尽快帮助。
感谢。

1 个答案:

答案 0 :(得分:0)

  • 将代码中的..更改为~,以指定网站的根目录。

    var folder = Server.MapPath("〜/ Article");

  • 然后与您的托管服务提供商联系,告诉他们您的计划需要write accessArticle个文件夹。它没有默认设置。