ASP.NET实现文件上传和下载

本文的开发配置

.NET版本:.NET Framework 4.0
开发环境:Microsoft Visual Studio 2013
浏览器:IE、Chrome、FireFox等都行

1、搭建网站结构
建立一个新的目录存放网页文件,用VS2013在这个目录里面建一个网站项目(VS2013怎么新建网站项目?)
新建两个目录UploadFile和DownloadFile,分别用于保存用户上传到服务器的文件和供用户从服务器下载的文件

2、编写网页文件
创建一个Web窗体Default,包含Default.aspx和Default.aspx.cs两个文件,源代码如下:
[Default.aspx]
<%@ Page Language=“C#” AutoEventWireup=“true” CodeFile=“Default.aspx.cs” Inherits=“_Default” %>

[Default.aspx.cs] using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;using System.IO; // 记得加这个引用,文件下载要用到public partial class _Default : System.Web.UI.Page {// 文件路径参数private string UPLOAD_DIRECTORY = "UploadFile/"; // 上传到服务器的文件放这里private string DOWNLOAD_DIRECTORY = "DownloadFile/"; // 供用户下载的文件放这里// 页面加载protected void Page_Load(object sender, EventArgs e){}/** 函数名:ButtonUpload_Click* 作用:响应用户上传文件* 参数:object sender, EventArgs e* 返回:void*/protected void ButtonUpload_Click(object sender, EventArgs e){// 当选择好上传文件时if (FileUpload1.HasFile){// 确定上传文件的本地路径string filePath = Server.MapPath("~/" + UPLOAD_DIRECTORY);// 确定文件名string fileName = FileUpload1.PostedFile.FileName;// 上传到服务器FileUpload1.SaveAs(filePath + fileName);// 提示上传成功Response.Write("

上传成功!

");}else{// 没有选择文件就点击上传时报错,提示要选文件Response.Write("

请选择要上传的文件!

");}}/** 函数名:ButtonDownload_Click* 作用:响应用户下载文件* 参数:object sender, EventArgs e* 返回:void*/protected void ButtonDownload_Click(object sender, EventArgs e){// 要下载的文件名,根据实际情况获取到这种形式string filename = "test.jpg";try{// 服务器文件路径string strFilePath = Server.MapPath("~") + "/" + DOWNLOAD_DIRECTORY + filename;FileInfo fileInfo = new FileInfo(strFilePath);Response.Clear();Response.Charset = "GB2312";Response.ContentEncoding = System.Text.Encoding.UTF8;Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(fileInfo.Name));Response.AddHeader("Content-Length", fileInfo.Length.ToString());Response.ContentType = "application/x-bittorrent";Response.WriteFile(fileInfo.FullName);Response.End();}catch (System.Threading.ThreadAbortException ex){}catch (Exception ex){}} } 3、运行测试 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5f0d4bae33b3476d9574d46cdccf583c.png#pic_center) 在VS2013里点击调试开始运行,这是打开后的界面 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a32cb74414f74fdbb4bfd28e1ee70d63.png#pic_center) 点击“选择文件”去选择本地文件,比如我们选一个Image 1.png文件,点击“确认上传” ![在这里插入图片描述](https://img-blog.csdnimg.cn/382c0e3e7b904c2a981e7dc2367d2f96.png#pic_center) 片刻会看到网页显示“上传成功!”,表示刚刚的PNG文件上传到了服务器,即网站所在的目录 ![在这里插入图片描述](https://img-blog.csdnimg.cn/03eceb832f1b4b9984184e45f29b83e5.png#pic_center) 我们去网站文件所在的目录查看一下,果然在UploadFile目录下有刚刚上传的文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/06c9cef7d9144df894227d89ddc43b6e.png#pic_center) 点击“下载文件”按钮,浏览器会弹出下载文件提示框,点击“下载” ![在这里插入图片描述](https://img-blog.csdnimg.cn/f508e749039145268ad1e0873daa112c.png#pic_center) 片刻就会提示下载完毕,我们还是去下载到的目录中看看 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1ca55a6d71fd41d3ae2d874c20a056ec.png#pic_center) 刚刚选择的是下载到桌面,直接去桌面看就行了,我们确实发现刚刚下载了一个test.jpg文件在桌面 当然,这个文件下载是这里固定了文件的,根据代码我们可以自己实现选择什么样的文件去下载到本地

参考文章:http://blog.ncmem.com/wordpress/2023/09/10/asp-net%e5%ae%9e%e7%8e%b0%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e5%92%8c%e4%b8%8b%e8%bd%bd/
欢迎入群一起讨论
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值