0

我的代码中有一个文件上传。我想以不同的名称保存该文件(即患者 ID + 时间戳),但我无法将上传的文件保存在实际物理位置。它的节目格式不正确。

这里位置和部门代码取自 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。一个窗口文件夹和文件不能包含以下字符: \ / : * ? " < > |并且您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 回答