为什么我的server.mappath()不能在另一台电脑上工作?

时间:2014-03-10 05:58:04

标签: asp.net

我的项目在我的电脑上..但是当我将上传的文件保存在我的项目内的文件夹中时。如果我在另一台电脑上传输我的项目,则server.mappath()无法工作。为什么?

我的问题上传功能

protected void addproblem_Click(object sender, EventArgs e)
{
    string filepath;
    if (problemupload.HasFile)
        try
        {
            if(problemupload.PostedFile.ContentType=="application/pdf")
            {
               // problemupload.SaveAs("F:\\0\\My project website\\sgipc\\problems\\" + problemupload.FileName);
               // filepath = "F:\\0\\My project website\\sgipc\\problems\\" + problemupload.PostedFile.FileName;
                problemupload.SaveAs(Server.MapPath("\\sgipc\\problems\\" + problemupload.FileName));
                filepath = Server.MapPath(problemupload.PostedFile.FileName);
                string con = " ";
                con = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
                SqlConnection objsqlconn = new SqlConnection(con);
                objsqlconn.Open();
                string userid = Convert.ToString(Session["userid"]);
                SqlCommand cmd = new SqlCommand("INSERT INTO problemtable(problemname,problempath,userid,status) Values('" + probbox.Text + "','" + filepath + "','" + userid + "','" + "pending" + "')", objsqlconn);
                cmd.ExecuteNonQuery();
                objsqlconn.Close();
            }
            else
            {
                Response.Write("<script>alert('" + "Only pdf format is allowed..." + "')</script>");
            }

        }
        catch (Exception ex)
        {
            Response.Write("<script>alert('" + ex.ToString() + "')</script>");
        }
    else
    {
        Response.Write("<script>alert('" + "you have not specified a file..." + "')</script>");
    }

 }

我收到此错误

“System.InvalidOperationException:无法映射路径'/sgipc/tutorials/v6-1446-1449.pdf'。”

从其他电脑上传文件时..但是从我的电脑上运行它可以正常工作..

1 个答案:

答案 0 :(得分:6)

我认为Server.MapPath尝试使用此语法FileUploadControl.SaveAs(Server.MapPath("~/sgipc/problems/" + problemupload.FileName));

时出现问题

~符号将自动配置来自服务器的路径,然后比\\签署地图路径更好..