Java大文件上传(秒传、分片上传、断点续传)

一、秒传

秒传就是不传,实现逻辑就是看数据库或者缓存里是否已经有这个文件了,有了,直接从已有的文件去拿就可以了(返回文件地址)。
这里判断是否是相同文件,要用到信息摘要算法,详情可以参考:一文读懂当前常用的加密技术体系。
信息摘要算法常常被用来保证信息的完整性,防止信息在传输过程中被篡改(无法确定信息是否被监听)。常用的就是MD5算法。

二、分片上传

分片上传,就相当于把一个大文件,拆成很多个小份,就想hls文件一样,一片一片的,上传完成后组合起来形成一个完整的文件。
一般和断点续传一起使用。

三、断点续传

分片上传过程中,会话失效、网络问题、系统问题导致的上传中断,恢复后再次上传,不用从头开始了,就是断点续传。

四、RandomAccessFile类

支持随意跳转到文件的任意位置进行读写,RandomAccessFile类的作用就很明显了,可以支持分片上传和断点续传。
其部分源码如下:

public RandomAccessFile(File file, String mode)
        throws FileNotFoundException
    {
   
        String name = (file != null ? file.getPath() : null);
        int imode = -1;
        if (mode.equals("r"))
            imode = O_RDONLY;
        else if (mode.startsWith
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值