2010-03-08 81 views
0

我必須將文件保存到物理文件夾。但我有以下例外。 「路徑不是虛擬路徑」我如何將物理路徑更改爲虛擬路徑。我怎樣才能解決這個問題asp.Net中的虛擬路徑異常

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; 
    } 
} 
+2

請給我們看你的代碼。 – SLaks 2010-03-08 18:32:29

+0

成績=新成績(); grade.Exam = Exams.Search(ddlExam.SelectedValue); grade.Person = Person.GetStudent(ddlStudent.SelectedValue); 嘗試 { 如果(afuPaper.HasFile) { 串strPath的=使用Server.Mappath(grade.Exam.FileUrl)+ ddlExam.SelectedValue + grade.Person.TcNo + Path.GetFileName(afuPaper.FileName ); afuPaper.SaveAs(strPath); grade.GradeJpeg = strPath; } – boraer 2010-03-08 18:58:56

回答

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; 

      } 
+0

grade.Exam.FileUrl是一個類似於C:\\ File \\ Paper1的pyhsical路徑 – boraer 2010-03-08 19:00:54

0

grade.Exam.FileUrl是如C pyhsical路徑:\文件\ Paper1

0

預計使用Server.Mappath虛擬路徑並將其轉換爲一個物理路徑。

假設您需要一個SaveAs物理路徑,那麼您可以簡單地刪除該呼叫。

MapPath方法被用於將虛擬路徑,如 「〜/位置/ File.aspx」 到物理路徑轉換如 「C:\ inetput \ wwwroot的\ MyApplication1 \位置\ 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; 

     } 

注意如果需要FileUrl之間,我還有包括Path.Combine一個電話,這是首選的方法結合了文件夾和文件名(它會自動添加一個\不管)