Asp文件上传控件,其中一个应该使用

本文关键字:一个 文件 控件 Asp | 更新日期: 2023-09-27 18:13:55

好的,我在网上找到这个来上传一些文件。

if (FileUpload1.HasFile)
{
    //create the path to save the file to
    string fileName = Path.Combine(@"E:'Project'Folders", FileUpload1.FileName);
    //save the file to our local path
    FileUpload1.SaveAs(fileName);
}

//check to make sure a file is selected
if (FileUpload1.HasFile)
{
    //create the path to save the file to
    string fileName = Path.Combine(Server.MapPath("~/Files"), FileUpload1.FileName);
    //save the file to our local path
    FileUpload1.SaveAs(fileName);
}

有什么区别,用哪一个?我很困惑。顺便说一下,如果我能在数据库中存储文件路径,那么下次我想删除或查看该文件时,我该如何检索?所以让我们说,首先我添加一个记录到数据库和上传一个。doc文件/excel文件,下次当我想编辑的记录,我想检索上传的文件,并在UI中显示它。谢谢。

Asp文件上传控件,其中一个应该使用

使用第二个,因为它会将相对路径或虚拟路径转换为真实路径本身。.u应该从db中获取路径,并使用它来解析路径,就像你存储路径一样,并对其进行操作删除等,以显示url="~/Files/yourfilename"Yourfilefromdb -u从db检索

string filepath = Path.Combine(Server.MapPath("~/Files"), yourfilefromdb);
File.Delete(filepath);
for showing
if it accessible directly u can just write url="~/Files/yourfilefromdb"

两个代码块的唯一区别是指定了文件路径。

在情形1中,指定静态位置来保存文件。如果在您的生产环境中保存文件的位置不同,则可能导致问题。在这种情况下,它将需要重新构建。

而在情形2中,使用相对路径指定位置。因此,它总是将文件保存在"/files "位置。

//if you already know your folder is: E:'ABC'A then you do not need to use Server.MapPath, this last one is needed if you only have a relative virtual path like ~/ABC/A and you want to know the real path in the disk...
    if (FileUpload1.HasFile)
    {
        string fileName = Path.Combine(@"E:'Project'Folders", FileUpload1.FileName);// they know the right path so .they using directly  
        FileUpload1.SaveAs(fileName);
    }
    if (FileUpload1.HasFile)
    {
        string fileName = Path.Combine(Server.MapPath("~/Files"), FileUpload1.FileName);// i don't know path is correct or not so they using Server.MapPath. . .
        FileUpload1.SaveAs(fileName);
    }