C#.NET上传文件的保存

C#.NET上传文件的保存,第1张

/// <summary>

/// 检查要上传的文件是否存在,并保此猛启存在FileUpload目录中,返回上传的虚拟路径,如森如:(~/***/***.jpg)

/// </summary>

/// <param name="FileUpload">上传控件</param>

/// <param name="strDir">在FileUpload文件夹下的目录名,想要保存文件路径,如: Project/News ..</param>

/// <returns></returns>

public static string CheckFileAndSave(FileUpload fupFile, string strDir)

{

//文件存在时建立的新文件名

string strFileName = System.IO.Path.GetFileName(fupFile.FileName)//文件名

//string strFileExtent = System.IO.Path.GetExtension(fupFile.FileName).ToLower()//文件扩展名

String strFilePath = string.Empty//用于保存最终知斗的返回路径

try

{

if (fupFile.HasFile)

{

//检查目录是否存在,不存在则创建

string str_FilePath = String.Format("~/Road/FileUpload/{0}/", strDir)

if (!System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(str_FilePath)))

{

System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(str_FilePath))

}

if (CheckingFile(fupFile))

{

//string test = HttpContext.Current.Server.MapPath("~/FileUpload/" + strDir + "/" + strFileName)

//检查文件是否同名,同名则在名称后加时间序列

if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(str_FilePath + strFileName)))

{

//建立新文件名

strFileName = GetNewFileName(fupFile.FileName.ToString()).ToLower()

//同步上传文件 ( 数据库Path路径与本地文件的命名 ) , 当发生注入错误时数据库文件名会被修改,本地文件名也应修改!

//strFilePath = SecurityUtility.HtmlEncode(str_FilePath + strFileName)

strFilePath = str_FilePath + strFileName

fupFile.SaveAs(HttpContext.Current.Server.MapPath(strFilePath))

}

else

{

//strFilePath = SecurityUtility.HtmlEncode(str_FilePath + strFileName)

strFilePath = str_FilePath + strFileName

fupFile.SaveAs(HttpContext.Current.Server.MapPath(strFilePath))

}

}

}

}

catch (Exception)

{

DeleteFileByPath(strFilePath)

throw

}

return strFilePath

}

/// 上传图片方法

/// <param name="fup"></param>

/// <returns></returns>

public string GetUpLoadImgName(FileUpload fup){string UploadFileName, UploadFileLastName

UploadFileName = fup.PostedFile.FileName//文件在本地的原始位置

UploadFileLastName = UploadFileName.Substring(UploadFileName.LastIndexOf(".") + 1)//得到文件的扩展名

Random rd = new Random()//产生随机数

int valationNo = 10 + rd.Next(99)//产生随机数

string suiji = valationNo.ToString()//产生随机数

string UpLoadFileTime = DateTime.Now.ToString("yyyyMMddHHmmss") + suiji//得到系统时间并加上随机数以便生成上传图片名称

string NewUploadFileName = UpLoadFileTime + "." + UploadFileLastName//产生上传图片的名称

string UserDirectory = "Products"//所要创建文件夹的名字,实际运咐宴用中可汪简洞为用户注册ID

string UserPath = Server.MapPath("UploadFiles").ToString() + "\\" + UserDirectory

if (!Directory.Exists(UserPath)) //如果文件夹不存在则创建{Directory.CreateDirectory(UserPath)

} string sUser_ProductsImageUrl = "/UploadFiles/" + UserDirectory + "/" + NewUploadFileName//得困枯到服务端图片的虚拟路径

fup.PostedFile.SaveAs(Server.MapPath("UploadFiles/Products/" + NewUploadFileName))//用保存的方法将图片上载

return NewUploadFileName

}上面的是我自己的上传图片的··下面的是下载的代码··不全··你可以去网上找·很多的 HttpResponse resp

resp = Page.Response

resp.AppendHeader("Content-Disposition", "attachmentfilename="+FileName)追问: 类似的代码我看过的了,下载怎样写呢 ,里面关键一点就是能不能获得上传文件的绝对地址呢,用fup.PostedFile.FileName//文件在本地的原始位置 我试过只是能取到该文件的名字而不是全部的路径 回答: 你要什么路径··直接fup.FileName就是全部路径啊! 追问: 不是全部路径啊 我刚刚又试过了 我要的是本地的全部绝对路径如才c:/eee.file.txt 回答: Server.MapPath(FileUpload1.PostedFile.FileName)用server.mapPath试试看 追问: 呵呵 其实我也试过了 不过还是要谢谢你啊


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12229863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存