【问题标题】:why my server.mappath() is not working in another pc?为什么我的 server.mappath() 不能在另一台电脑上工作?
【发布时间】:2014-03-10 05:58:03
【问题描述】:

我的电脑中有项目..但是当我将上传的文件保存在我的项目内的文件夹中时。现在当我在另一台电脑中传输我的项目时 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'。”

从另一台电脑上传文件时..但是从我的电脑上它工作正常..

【问题讨论】:

标签: asp.net


【解决方案1】:

我认为Server.MapPath 有问题试试这个语法FileUploadControl.SaveAs(Server.MapPath("~/sgipc/problems/" + problemupload.FileName));

~ 标志会自动从服务器配置路径,它比\\ 标志更好。

【讨论】:

  • 使用此命令时,我在 cmd.ExecuteNonQuery();.. 行中遇到一个错误。错误是二进制数据可能被截断..
  • 是的,然后只是增加图像路径保存列的大小 --> varchar(MAX)
  • @Shirish,varchar(MAX) 对于文件路径来说有点过分。 261,IIRC,是 Windows 中可用的最长路径。
  • @ColinMackay 你能进一步解释一下吗?
  • @ColinMackay varchar(MAX) 会出现什么问题? stackoverflow.com/questions/4377740/…。如果你有更好的选择,那么我真的很想学习.. :)
猜你喜欢
  • 2021-11-01
  • 2021-03-27
  • 1970-01-01
  • 2018-06-20
  • 2014-09-15
  • 1970-01-01
  • 2011-01-19
  • 2020-03-20
  • 1970-01-01
相关资源
最近更新 更多