如何在asp.net中以实际物理路径保存不同名称的上传文件?

时间:2013-05-15 04:37:13

标签: c# asp.net

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

此处从session.and主路径获取的位置和deptcode取自web.config中定义的变量。那就是基础路径。从该基本路径我创建子文件夹是它不存在然后必须以不同的名称保存上传的文件。值都是正确的。即使不存在,我也可以创建子文件夹,但只有问题是saveas行。我无法保存上传的文件。 这里如果我使用SaveAs(Server.MapPath(..)),它表明你应该使用虚拟路径。 如果我只使用saveas(filelocation)然后它显示格式是错误的..请帮助我..

4 个答案:

答案 0 :(得分:2)

string timestamp = DateTime.Now.ToString();这会返回像5/15/2013 10:14:18 AM这样的内容。窗口文件夹和文件不能包含以下字符: \ / : * ? " < > |DateTime.Now这个字符: and /中的一个字符:正在为此提供此错误的原因。请DateTime.Now.ToString().Replace(':','-').Replace('/','-');移除{{1}}我觉得它会起作用

答案 1 :(得分:1)

问题是因为DateTime.Now.ToString()中的“:”。您可以使用字符串格式的ToString()方法来更改它。例如:

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

这应解决问题

答案 2 :(得分:0)

你应该改变 string timestamp = DateTime.Now.ToString();

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

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

这将附加一个转换为字符串的长数字,因此它将生成一个有效的名称,并且您将拥有一个有效的时间戳

答案 3 :(得分: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));
}