.NET中实现文件的上传与下载

来源:互联网 发布:福建广电网络工资待遇 编辑:程序博客网 时间:2024/05/07 05:10

1.文件上传
    /// <summary>
    /// 上传文件
    /// </summary>
    private void UpLoadFile()
    {
        AdminManage admin = new AdminManage();
        string fileName; //存储文件名
        string filePath; //存储上传的路径
        string fileExtension; //存储上传文件的扩展名
        bool blFileOk = false; //存储是否有文件存在
        bool blUpload = false; //上传是否成功
        int fileId; //上传文件的Id号

        fileName = FileUpload.FileName;
        filePath = Server.MapPath("~/DownLoad/");
      
        //存在文件
        if (FileUpload.HasFile)
        {
            fileExtension = Path.GetExtension(FileUpload.FileName).ToLower();

            if (fileExtension == ".txt")
            {
                blFileOk = true; //存在上传的文件
            }
        }
        else
        {
            Response.Write("<script language = javascript>alert('没有选择文件!')</script>");
            return;
        }

        if (blFileOk)
        {
            try
            {
                FileUpload.PostedFile.SaveAs(filePath + fileName);
                blUpload = true; //上载文件成功
            }
            catch (Exception ex)
            {
                Response.Write("<script language = javascript>alert('上传文件失败!')</script>");
            }
        }
        else
        {
            Response.Write("<script language = javascript>alert('不能接受该类型的文件!')</script>");
        }
    }

2.文件下载

    //文件下载
    /// <summary>
    /// 用户下载文件
    /// </summary>
    /// <param name="filename">下载文件的物理路径</param>
    private void FileDownLoad(string filename)
    {
        string destFileName = filename;
        destFileName = Server.MapPath("./") + destFileName;
        destFileName = Server.UrlDecode(destFileName);

        if (File.Exists(destFileName))
        {
            FileInfo fi = new FileInfo(filename);
            Response.Clear();
            Response.ClearHeaders();
            Response.Buffer = true;
            Response.Charset = "GB2312";

            //添加头信息,为 "文件下载/另存为 "对话框指定默认文件名
            Response.AppendHeader("Content-Disposition", "attachment;filename="
                + HttpUtility.UrlEncode(Path.GetFileName(destFileName),
                System.Text.Encoding.UTF8));
            Response.AppendHeader("Content-Length", fi.Length.ToString());
            Response.ContentType = "application/octet-stream";
            Response.Filter.Close();
            Response.WriteFile(destFileName);
            Response.Flush();
            Response.End();
        }
        else
        {
            Response.Write("<script language = javascript>alert('下载出错')</script>");
        }
    }