0

コードにファイルのアップロードがあります。そのファイルを別の名前 (つまり、患者 ID + タイムスタンプ) で保存したいのですが、アップロードされたファイルを実際の物理的な場所に保存できませんでした。ショーの形式が正しくありません。

ここでは、場所と deptcode は session.and から取得され、mainpath は web.config で定義された変数から取得されます。それがベースパスです。そのベースパスから、私が作成しているサブフォルダーはそこにないため、アップロードされたファイルを別の名前で保存する必要があります。値はすべて正しいです。存在しない場合でもサブフォルダーを作成できますが、唯一の問題は行として保存することです。アップロードしたファイルを保存できません。ここで SaveAs(Server.MapPath(..)) を使用すると、仮想パスを使用する必要があることが示されます。saveas(filelocation) のみを使用すると、フォーマットが間違っていることが示されます..助けてください..

4

4 に答える 4

2

string timestamp = DateTime.Now.ToString();これは、このようなものを返し5/15/2013 10:14:18 AMます。ウィンドウフォルダーとファイルに次の文字を含めることはできません: この文字の1つを返す\ / : * ? " < > |と、このエラーが発生する理由です。削除するとうまくいくと思います。DateTime.Now: and /:DateTime.Now.ToString().Replace(':','-').Replace('/','-');

于 2013-05-15T04:50:25.653 に答える
1

問題は、DateTime.Now.ToString() の「:」が原因です。ToString() メソッドを文字列形式で使用して変更できます。例:

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

これで問題は解決するはずです

于 2013-05-15T05:12:09.573 に答える
0

あなたはに変更 string timestamp = DateTime.Now.ToString();する必要があります

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

または

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

これにより、文字列に変換された長い数値が追加されるため、有効な名前が生成され、有効なタイムスタンプも得られます

于 2013-05-15T05:11:27.710 に答える
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));
}
于 2013-05-15T05:31:06.917 に答える