网页实现小文件的上传与下载

原理:1、上传文件:通过 input 上传文件,将文件读写为内存流,通过获取后缀,然后生 成唯一文件名,通过制定路径进行保存文件。 2、下载文件:通过传输指定的文件名,在指定的路径里复制已存在的文件,并返 回给网页。 (依赖 JQuery 插件)

关键字:GetFileName(获取文件名称)、GetExtension(获取文件后缀)

一、上传文件:以上传图片为例(文件大小<128m)

1、通过 input 进行选择文件上传

2、然后通过 jq 的选择器选取到 input 所选择的文件 var userPicture = $("#userPictureFile").get(0).files[0];

3、通过 ajax 提交数据至控制器 、 注(method 只能使用 post)

4、控制器接收数据,使用基类 HttpPostedFileBase

通过 GetExtension 获取文件尾缀 string imgExtension = Path.GetExtension(userPicture.FileName);

5、生成文件唯一名称以及获取保存路径(文件名称可以自行设定或随机生 成)

随机生成唯一名称:通过调用 Guid.NewGuid() (全球唯一标识符)拼 接文件尾缀

获取指定的保存路径:

6、保存文件

通过 SaveAs 对文件进行保存 userPicture.SaveAs(imgFilePath);

可根据实际情况,自身需求,自行传参设定文件名称(同一保存文件目录下不 能存在相同文件名称)

二、下载文件:以下载压缩包为例(文件大小<128m)

下载文件较上传文件要简单一些,只需从指定的路径提取数据便可

1、通过触发点击事件,打开指定的下载路径

2、获取获取指定的下载目录(可传参灵活改变压缩包以及下载的目录路 径)

3、判断指定下载的文件是否存在,若不存在则进行报错

4、获取文件的名称(带扩展名) 通过 GetFileName 获取到文件的名称

5、将文件返回给视图,实现文件下载

动态下载文件,只需灵活变通一下,动态传参(压缩包的名称,或者下载的目 录)


版权声明:本文为qq_49853247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。