java web 文件下载代码_java+web文件的上传和下载代码

本文介绍了一种适用于大文件(如100M甚至1GB)的分片上传和下载方法。通过自定义的大文件上传控件,实现文件和文件夹的批量上传与下载。该方法在网络出现问题时仅需重传失败的分片,并能实时跟踪上传进度。

一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了。我这里分享一下我自己开发的一套大文件上传控件供大家参考

这是前端代码:

{{message}}

//定义一个名为button-counter的新组件

Vue.component('http-uploader6', {

data() {

return{

upApp:null

}

},

mounted() {

//初始化up6

const_this =this;

this.upApp =newHttpUploaderMgr();

this.upApp.load_to("up6-div");

},

destoryed() {

//this.editor.destory();

},

methods: {

open_file:function() {this.upApp.openFile(); }

, open_folder:function() {this.upApp.openFolder(); }

},

template:'

});

varapp =newVue({

el:'#app',

data: {

message:'演示up6如何在vue中使用'

}

});

这是后台存储部分代码:

using System.Web;

using up6.db.model;

namespace up6.db.biz

{

/// 

/// 路径生成器基类

/// 提供文件或文件夹的存储路径

/// 

public class PathBuilder

{

/// 

/// 根级存储路径,

/// 

/// 

public string getRoot()

{

return HttpContext.Current.Server.MapPath("/upload");

}

public virtual string genFolder(ref FileInf fd)

{

return string.Empty;

}

public virtual string genFile(int uid,ref FileInf f)

{

return string.Empty;

}

public virtual string genFile(int uid,string md5,string nameLoc)

{

return string.Empty;

}

}

}

文件和文件夹批量上传

d320c6d5f590b288cd04240a78df890b.png

当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。

c5731615439e62444073b01adf4fb77a.png

上传成功后打开我们的存储文件夹查看,发现自动生成了几个文件夹,打开文件夹确认上传文件成功

1ee746540beb0dc623593995d251e567.png

文件及文件夹批量下载

下载代码截图:

1583fba54ef9315eff2ffb40346105dc.png

04276f01c856d9b345235e7d23fa5d5c.png

首先勾选多个上传的文件或文件夹,你会发现多了一个下载按钮

dceeed674c6de839398afb5f616e92b2.png

然后点击下载按钮,设置下载目录文件夹

013e61ac7e3d47e2cf312a6ff42452f8.png

设置完成后继续点击下载按钮,页面的右下角出现了下载面板,你选择的文件已出现在目录中,然后点击全部下载,或者单个点击继续,自动加载未上传完的任务。在刷新浏览器或重启电脑后任然可以自动加载未完成的任务

e890a1804a76d045620c104f24e1236f.png

下载完成后打开我们设置的下载目录文件夹,发现需下载的文件或文件夹确认已下载成功,经确认文件夹内的内容与下载文件夹内容一致

55ea91def9c6545b94f8df40c734e9d3.png

勾选多个上传的文件或文件夹,你会发现多了一个下载按钮

dceeed674c6de839398afb5f616e92b2.png

然后点击下载按钮,设置下载目录文件夹

013e61ac7e3d47e2cf312a6ff42452f8.png

我设置的是桌面的测试下载目录,设置好点击确定后,继续点击下载按钮,你会发现在页面的右下角出现了下载面板,你选择的文件已出现在目录中,然后点击全部下载,或者单个点击继续

e890a1804a76d045620c104f24e1236f.png

下载完成后打开我们设置的下载目录文件夹,发现需下载的文件或文件夹确认已下载成功,文件夹内的内容与下载文件夹内容一致

55ea91def9c6545b94f8df40c734e9d3.png

数据库记录

b73770e224f5411e6afd7660605e39a4.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值