我必须将文件保存到物理文件夹。但我得到以下例外。 “路径不是虚拟路径”如何将物理路径更改为虚拟路径。我该如何解决这个问题
Grades grade = new Grades();
grade.Exam = Exams.Search(ddlExam.SelectedValue);
grade.Person = Person.GetStudent(ddlStudent.SelectedValue);
try{
if (afuPaper.HasFile)
{
string strPath = Server.MapPath(grade.Exam.FileUrl) + ddlExam.SelectedValue +
grade.Person.TcNo + Path.GetFileName(afuPaper.FileName);
afuPaper.SaveAs(strPath); grade.GradeJpeg = strPath;
}
}
答案 0 :(得分:0)
等级=新等级(); grade.Exam = Exams.Search(ddlExam.SelectedValue); grade.Person = Person.GetStudent(ddlStudent.SelectedValue);
try
{
if (afuPaper.HasFile)
{
string strPath = Server.MapPath(grade.Exam.FileUrl) + ddlExam.SelectedValue + grade.Person.TcNo + Path.GetFileName(afuPaper.FileName);
afuPaper.SaveAs(strPath);
grade.GradeJpeg = strPath;
}
答案 1 :(得分:0)
grade.Exam.File Url是一个物理路径,如C:\ File \ Paper1
答案 2 :(得分:0)
Server.MapPath需要虚拟路径并将其转换为物理路径。
假设您需要SaveAs的物理路径,那么您可以简单地删除该呼叫。
MapPath方法用于将虚拟路径(如“〜/ Location / File.aspx”)转换为物理路径,例如“C:\ inetput \ wwwroot \ MyApplication1 \ Location \ File.aspx”
编辑:修改代码
try
{
if (afuPaper.HasFile)
{
string strPath = Path.Combine(grade.Exam.FileUrl, ddlExam.SelectedValue + grade.Person.TcNo + Path.GetFileName(afuPaper.FileName));
afuPaper.SaveAs(strPath);
grade.GradeJpeg = strPath;
}
请注意,我还包含对Path.Combine的调用,这是组合文件夹和文件名的首选方法(如果需要,它会在FileUrl和其他任何内容之间自动添加\)