2013-05-15 33 views
0

我有一個文件上傳在我的代碼。我想以不同的名稱保存該文件(即患者ID +時間戳),但我無法將上傳的文件保存在實際的物理位置。其節目格式不正確。如何用asp.net中的實際物理路徑以不同名稱保存上傳的文件?

這裏的位置和deptcode取自session.and mainpath取自web.config中定義的變量。那是基本路徑。從那個基本路徑我創建子文件夾是它不存在,然後必須以不同的名稱保存上傳的文件。值都是正確的。即使我不能創建子文件夾,但只有問題是saveas行。我無法保存上傳的文件。 這裏如果我使用SaveAs(Server.MapPath(..))它顯示你應該使用虛擬路徑。 如果我只使用saveas(filelocation),那麼它顯示的格式是錯誤的..請幫助我..

+0

你能請註明filelocationpat –

+0

@Parv夏爾馬其d的值:\ UploadedAttachment \ AT \ MRD \ AT0520130008_15/05/2013 10:14: 30.jpg –

回答

2

string timestamp = DateTime.Now.ToString();這個返回一些像這樣的東西5/15/2013 10:14:18 AM。一個窗口文件夾和文件不能包含以下字符: \/: * ? " < > |和您的DateTime.Now回到這個字符是: and /這就是爲什麼它給你這個錯誤。刪除:通過DateTime.Now.ToString().Replace(':','-').Replace('/','-');我認爲它會工作。

+0

我試過了,但得到這樣的錯誤: 找不到路徑'D:\ UploadedAttachment \ AT \ MRD \ AT0520130008_15 \ 05 \ 2013 10-27-56.jpg'的一部分。 –

+0

我應該更換日期'\'嗎?鋤頭要做到這一點? –

+0

是的,你需要更換它我更新我的答案,因爲這兩個字符在文件名無效... –

0

你應該改變 string timestamp = DateTime.Now.ToString();

string timestamp = DateTime.Now.Ticks.ToString(); 

string timestamp = DateTime.Now.ToString("yyyyMMdd_hhmmss"); 

這將追加轉換成字符串長號碼,因此它會產生一個有效的名稱,你也將有一個有效的時間戳

+0

嘿,非常感謝。我使用了DateTime.Now.ToString(「dd-MM-yy-hh-mm-ss」)。工作。 :-) –

+0

請幫助這 http://stackoverflow.com/questions/16579410/how-to-open-image-or-pdf-file-in-a-new-window –

1

問題是由於DateTime.Now.ToString()中的「:」。您可以使用字符串格式的ToString()方法進行更改。例如:

DateTime.Now.ToString("dd-MM-yy-hh-mm-ss") 

這應該解決的問題

+1

謝謝我使用same..worked :-) –

+0

很高興知道。 :) – cherhan

+0

請幫助這個 http://stackoverflow.com/questions/16579410/how-to-open-image-or-pdf-file-in-a-new-window –

0
try 
{ 
    FbDataAdapter daa = new FbDataAdapter();///////////////////time :1.00 to 9.00 
    string da = DateTime.Now.ToString(); 
    string date = da.Substring(0, 2); 
    string date1 = da.Substring(3, 4 - 2); 
    string date2 = da.Substring(6, 9 - 5); 
    string daietime = "D" + date + "M" + date1 + "Y" + date2; 

    int f = da.IndexOf(":"); 
    int l = da.Length; 
    string main = da.Substring(11, f - 11); 
    string refer = da.Substring(13, f - 10); 
    string refer1 = da.Substring(16, f - 10); 
    string refer2 = da.Substring(19, f - 10); 
    string time = "H" + main + "M" + refer + "S" + refer1 + "S" + refer2; 
    // uploadedfilename means FileUpload Control 
    uploadedfilename.SaveAs(@Request.PhysicalApplicationPath + "images\\"+ daietime + time + Path.GetExtension(uploadedfilename.FileName)); 

} 
catch 
{ 
    string da = DateTime.Now.ToString();//////////////////////// Time :10.00 to 12.00 
    string date = da.Substring(0, 2); 
    string date1 = da.Substring(3, 4 - 2); 
    string date2 = da.Substring(6, 9 - 5); 
    string daietime = "D" + date + "M" + date1 + "Y" + date2; 

    int f = da.IndexOf(":"); 
    int l = da.Length; 
    string main = da.Substring(11, f - 11); 
    string refer = da.Substring(14, f - 11); 
    string refer1 = da.Substring(17, f - 11); 
    string refer2=""; 
    string time=""; 
    try 
    { 
     refer2 = da.Substring(20, f - 11); 
     time = "H" + main + "M" + refer + "S" + refer1 + "S" + refer2; 
    } 
    catch 
    { 
     refer2 = "H" + main + "M" + refer + "S" + refer1; 
     time = "H" + main + "M" + refer + "S" + refer1 + "S" + refer2; 
    } 
    uploadedfilename.SaveAs(@Request.PhysicalApplicationPath + "images\\"+ daietime + time + Path.GetExtension(uploadedfilename.FileName)); 
} 
+0

嘿,我知道了..我只是使用DateTime.Now.ToString(「dd-MM-yy-hh-mm-ss」)。工作。 :-) ..你的代碼有點冗長。我寧願保持它簡單..dont介意..感謝:-) –

+0

請幫助這個 http://stackoverflow.com/questions/16579410/how-to-open-image-or-pdf-file-in-一個新窗口 –

+0

你現在就看到它 – karthi

相關問題