ASP.NET上传下载文件
上传文件:
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.IO;
- /// 上传文件
- /// </summary>
- /// <param name="UpLoadFilePath">上传位置</param>
- /// <param name="strTime">当前时间(加时间重命名文件,防止重复)</param>
- /// <param name="upload">上传控件</param>
- private void UploadMethod(String UpLoadFilePath, string strTime,FileUpload upload)
- {
- bool fileOK = false;
- //文件的上传路径
- string path = Server.MapPath(UpLoadFilePath);
- //判断上传文件夹是否存在,若不存在,则创建
- if (!Directory.Exists(path))
- {
- //创建文件夹
- Directory.CreateDirectory(path);
- }
- //如果选择了文件则执行
- if (upload.HasFile)
- {
- //获取上传文件的类型
- string fileExtesion = System.IO.Path.GetExtension(upload.FileName).ToLower();
- //获取没有扩展名的文件名
- string result = System.IO.Path.GetFileNameWithoutExtension(upload.FileName);
- //允许上传的类型
- string[] allowExtesions = { ".doc", ".xls", ".rar", ".zip", ".ppt" };
- for (int i = 0; i < allowExtesions.Length; i++)
- {
- if (fileExtesion == allowExtesions[i])
- {
- //文件格式正确 允许上传
- fileOK = true;
- }
- }
- if (fileOK)
- {
- try
- {
- string newname = result + strTime + fileExtesion;
- upload.PostedFile.SaveAs(path + newname);
- Session["filename"] = newname;
- }
- catch (Exception)
- {
- Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('上传失败!');</script>");
- }
- }
- else
- {
- Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('上传失败!');</script>");
- }
- }
- else
- {
- //尚未选择文件
- Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('尚未选择任何文件,请选择文件!');</script>");
- return;
- }
- }
- #endregion
下载文件:
- /// 下载文件
- /// </summary>
- /// <param name="downloadfilepath">文件路径</param>
- private void DownloadMethod(string downloadfilepath)
- {
- string path = Server.MapPath(downloadfilepath);
- Regex re = new Regex(@"\w*\.\w*");
- string st = re.Match(path).Value.ToString();
- string fileName = st; //客户端保存的文件名
- FileInfo fileInfo = new FileInfo(path);
- Response.Clear();
- Response.ClearContent();
- Response.ClearHeaders();
- Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
- Response.AddHeader("Content-Length", fileInfo.Length.ToString());
- Response.AddHeader("Content-Transfer-Encoding", "binary");
- Response.ContentType = "application/octet-stream";
- Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
- Response.WriteFile(fileInfo.FullName);
- Response.Flush();
- Response.End();
- }
调用:
UploadMethod(DocPath,strTime,fileUpload);
DownloadMethod(filePath);