JS异步文件分片断点上传的实现思路

在项目中有时会遇到大文件上传,经常会出现链接超时的问题,所以就需要使用文件分片上传的方式来上传大文件。实现原理就是,在前端将文件分成指定大小的“文件块”,分成多次上传,每次上传前先向后台查询已经上传成功的文件的大小,然后从指定的位置切割一块文件,进行上传,后台接收到文件块后追加到指定的文件中。

这篇博客适合有一些后台基础的朋友,或者有后台配合的前端。

这里需要后台提供两个接口,一个上传文件的接口,一个查询已上传文件大小的接口。

前端代码:

这里放上后台主要代码

t = multiRequest.getFileNames(); MultipartFile fileDetail = multiRequest.getFile(t.next()); String name = request.getParameter("name"); JedisShardInfo jedisShardInfo = new JedisShardInfo("192.168.0.12"); Jedis jedis = new Jedis(jedisShardInfo); UploadedFileInfo uploadedFileInfo = JSON.parseObject(jedis.get(name),UploadedFileInfo.class); uploadedFileInfo.setFileName(name); String path = "d:/testUpload"; File file = new File(path); if (!file.exists() && !file.isDirectory()) { boolean b = file.mkdirs(); } RandomAccessFile randomFile = null; try { randomFile = new RandomAccessFile(path+"/"+name,"rw"); randomFile.seek(randomFile.length()); randomFile.write(fileDetail.getBytes()); uploadedFileInfo.setLocalPath(path+"/"+name); uploadedFileInfo.setSize(randomFile.length()); } catch (IOException e) { e.printStackTrace(); }finally{ try { randomFile.close(); } catch (IOException e) { e.printStackTrace(); } } // 将上传文件信息保存到redis jedis.set(name,JSON.toJSONString(uploadedFileInfo)); jedis.close(); return 0; } }

以上所述是小编给大家介绍的JS异步文件分片断点上传的实现思路。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...