【问题标题】:How to save uploaded file in different name with actual physical path in asp.net?如何在asp.net中使用实际物理路径以不同的名称保存上传的文件?
【发布时间】:2013-05-15 04:37:12
【问题描述】:

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

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

【问题讨论】:

  • 你能指定filelocationpat的值吗
  • @Parv Sharma 其 D:\UploadedAttachment\AT\MRD\AT0520130008_15/05/2013 10:14:30.jpg

标签: c# asp.net


【解决方案1】:

string timestamp = DateTime.Now.ToString(); 这会返回类似5/15/2013 10:14:18 AM 的东西。窗口文件夹和文件不能包含以下字符: \ / : * ? " < > | 和你的 DateTime.Nowreturn 这个字符之一是 : and / 这就是为什么它给你这个错误。删除 : by DateTime.Now.ToString().Replace(':','-').Replace('/','-'); 我认为它会起作用。

【讨论】:

  • 我试过了,但得到这样的错误:找不到路径“D:\UploadedAttachment\AT\MRD\AT0520130008_15\05\2013 10-27-56.jpg”的一部分。
  • 我也应该替换日期'\'吗?锄头这样做?
  • 是的,你也必须替换它我更新我的答案,因为这两个字符在文件名中无效......
  • 不能写 2 替换。显示语法错误。我猜也 \ 被认为是新行..
  • 嘿,非常感谢。我使用了 DateTime.Now.ToString("dd-MM-yy-hh-mm-ss")。工作。 :-)
【解决方案2】:

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

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

这应该可以解决问题

【讨论】:

【解决方案3】:

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

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

或到

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

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

【讨论】:

【解决方案4】:
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));
}

【讨论】:

  • 嘿,我明白了..我刚刚使用了 DateTime.Now.ToString("dd-MM-yy-hh-mm-ss")。工作。 :-)..你的代码有点长。我更喜欢保持简单..不要介意..谢谢:-)
猜你喜欢
  • 1970-01-01
  • 2011-12-10
  • 2015-12-04
  • 2015-01-12
  • 2017-04-20
  • 2018-02-22
  • 2012-07-29
  • 2017-11-10
  • 2016-07-19
相关资源
最近更新 更多