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中显示它。谢谢。
使用第二个,因为它会将相对路径或虚拟路径转换为真实路径本身。.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);
}