我尝试从网格视图下载文件,但我面临如下错误:
无法找到路径的一部分'C:\ Users \ love \ Desktop \ Crime Management System \ Crime Management System \ Admin \ Data \〜\ Admin \ Data \ State and State list of India.pdf'。< / p>
上传Aspx代码:
Property p = new Property();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillData();
}
}
private void FillData()
{
GridView1.DataSource = p.GetFile();
GridView1.DataBind();
}
protected void btnUpload_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
p.FileName = txtFileName.Text;
if (FileUpload1.HasFile)
{
p.Data = "~/Admin/Data/" + FileUpload1.PostedFile.FileName;
FileUpload1.SaveAs(Server.MapPath(p.Data));
}
else
p.Data = "Data is not Avilable";
}
p.CreateDate = Convert.ToDateTime(dtpdate.Text);
p.Size = txtSize.Text;
p.UploadFile(p);
Response.Write("Upload successfull");
}
源代码:
public void UploadFile(Property p)
{
cmd = new SqlCommand("UploadFile", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@FileName", p.FileName );
cmd.Parameters.AddWithValue("@Data", p.Data);
cmd.Parameters.AddWithValue("@CreateDate", p.CreateDate);
cmd.Parameters.AddWithValue("@Size", p.Size);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public void DeleteFile(Property p)
{
cmd = new SqlCommand("DeleteFile", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@DataId", p.DataId);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public DataTable GetFile()
{
cmd = new SqlCommand("Select * from tblData", con);
da = new SqlDataAdapter(cmd);
dt = new DataTable();
da.Fill(dt);
return dt;
}
Aspx下载代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Download")
{
Response.Clear();
Response.ContentType = "application/octect-stream";
Response.AppendHeader("content-disposition", "filename=" + e.CommandArgument);
Response.TransmitFile(Server.MapPath("~/Admin/Data/") + e.CommandArgument);
Response.End();
}
}
上传和删除文件所有内容都正常工作,但下载过程中遇到了问题。
答案 0 :(得分:0)
错误消息告诉您问题所在:
找不到路径的一部分&#39; C:\ Users \ love \ Desktop \ Crime 管理系统\犯罪管理 India.pdf&#39;
的System \ Admin \ Data \〜\ Admin \ Data \ State和Capital列表
管理员\数据\〜\管理员\数据 - &gt;您可以看到 Server.MapPath()已映射到 \ Admin \ Data ,然后您尝试再次映射它,这将导致无法找到的路径。 (您可以尝试输入资源管理器中给出的路径 - 不会工作)
如果只将文件名添加到 Server.MapPath(),您应该获得正确的下载路径:
Response.TransmitFile(Server.MapPath(e.CommandArgument.ToString()));