/// 检查要上传的文件是否存在,并保此猛启存在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试试看 追问: 呵呵 其实我也试过了 不过还是要谢谢你啊
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)