当前位置: 首页 > news >正文

网站怎么进行网络推广长沙房价2020最新价格

网站怎么进行网络推广,长沙房价2020最新价格,中国移动网络优化做什么的,网站备案编号文件的分片上传 格外功能是:秒传,断点续传。 今天最惨,上午找bug,下午一直在修改,晚上脑子what了,混乱的很,数据表之间的逻辑不清晰,导致我传值,还有操作数据库一直有问…

文件的分片上传

格外功能是:秒传,断点续传。

今天最惨,上午找bug,下午一直在修改,晚上脑子what了,混乱的很,数据表之间的逻辑不清晰,导致我传值,还有操作数据库一直有问题,这里最大的问题就是文件唯一了,然后要单独建立一个file表,不与班级,有关,班级文件表可以单独建立,可是当时想着把正在上传的和已经上传的建立了两张表,现在想想都后悔,如果要修改,好多要改的,所以就将就使用两张表吧。

8/4:今天一上午都在检查bug都没解决,现在终于解决:
1:由于我的socket是new的一个,导致我发请求在同一个返回的请求类型(当我得到服务器可以上传文件信息时,
   我立刻上传文件所有分片,当我的分片发完,后立刻发文件上传完成请求(这时候又是发送在原来的socket里面)
   当服务端接受到文件上传完成,立刻合并分片,会导致导致我new的哪个socket里的请求,上传文件程序还没有
   完成,导致我的文件分片列表files里为null
2:在合并文件时,我直接对文件分片进行Array.sort(),这样导致文件合片顺序错误,part11 < part12 < part2
 

文件分片代码:

public static void splitFile(File file,String md5) throws IOException {int partCounter = 0;byte[] buffer = new byte[CHUNK_SIZE];String fileName = file.getName();//创建目录File dir = new File("src/file/" + md5);if (!dir.exists()) {boolean created = dir.mkdirs(); // 创建目录及必要的父目录if (!created) {throw new IOException("Failed to create directory: " + dir.getAbsolutePath());}}try (FileInputStream fis = new FileInputStream(file);BufferedInputStream bis = new BufferedInputStream(fis)) {int bytesAmount = 0;while ((bytesAmount = bis.read(buffer)) > 0) {String filePartName = String.format("%s.part%d", md5, partCounter++);File newFile = new File(dir, filePartName);try (FileOutputStream out = new FileOutputStream(newFile)) {out.write(buffer, 0, bytesAmount);}}}

 这样就可以创建很多分片,然后可以分部上传。

在我上传文件时,是不接受服务端返回的消息,直接发送所有消息的,有问题。后面再修改。

这里暂停上传时,要修改一下。

在上传完成之后

服务端进行文件合并

public static File fileMerge(MyLargerFile myLargerFile) throws IOException {File newFile = new File("src/resource/files/" +myLargerFile.getMd5()+"."+myLargerFile.getOriginalName());File[] files = new File("src/resource/file/" +myLargerFile.getMd5()+"part").listFiles();Arrays.sort(files, (f1, f2) -> {// 分割文件名,获取分片编号部分String[] parts1 = f1.getName().split("\\.part");String[] parts2 = f2.getName().split("\\.part");// 提取并解析分片编号int part1 = Integer.parseInt(parts1[1]);int part2 = Integer.parseInt(parts2[1]);// 比较分片编号return Integer.compare(part1, part2);});try(FileOutputStream out = new FileOutputStream(newFile)) {for (File file1 : files) {System.out.println(file1.getName());try (FileInputStream fis = new FileInputStream(file1);BufferedInputStream bis = new BufferedInputStream(fis)){int bytesAmount = 0;byte[] buffer = new byte[CHUNK_SIZE];while ((bytesAmount = bis.read(buffer)) != -1) {out.write(buffer, 0, bytesAmount);}}}}for (File file : files){deleteFile(file);}deleteFile(new File("src/resource/file/" +myLargerFile.getMd5()+"part"));return newFile;}private static void deleteFile(File file){if (!file.delete()) {System.out.println("不能删除该文件: " + file.getName());}}

 混乱点

在这里表有点多,就导致逻辑有点混乱,这里应该先要建立文件上传记录,然后上传完成后修改数据,还有混乱的就是数据的传递,导致客户端和服务端的赋值,处理数据出现问题,这个特别严重,主要还是因为传递的参数过多,导致混淆。

今天还有一个坑就是进行合并文件时,进行文件的排序

Arrays.sort(files, (f1, f2) -> {// 分割文件名,获取分片编号部分String[] parts1 = f1.getName().split("\\.part");String[] parts2 = f2.getName().split("\\.part");// 提取并解析分片编号int part1 = Integer.parseInt(parts1[1]);int part2 = Integer.parseInt(parts2[1]);// 比较分片编号return Integer.compare(part1, part2);
});

http://www.yayakq.cn/news/230542/

相关文章:

  • ps联盟网站如何快捷建企业网站
  • 网站界面设计规范河南推广网站的公司
  • 北京网站建设方案软件买东西的网站
  • 温州网站建设温州ai怎么做网站用海报
  • 暴雪游戏有哪些网站优化方式有哪些
  • 市局网站建设建议提升学历励志语录
  • 网站设计品五金企业网站模板
  • 网站认证收费大连网页设计公司排名
  • 网站手机版东莞最好的网站
  • 阳谷网站建设价格山东电商网站建设
  • 云南城乡建设网站关键词完整版
  • 那些网站被k恢复是怎么做的鲜花网站建设的项目介绍
  • 网站和微信 微网站解决方案广告营销
  • 微芒科技网站建设top北京网讯百度科技有限公司
  • 网站引导页模板瑞安论坛
  • 东莞品牌网站设计吉安网站建设公司
  • 泉州网站平台建设公司王磊网络网站建设
  • 网站建设基础摘要如何将数据库导入网站
  • 深圳建设网站龙岗网站建设宣传的网站开发需要多少钱
  • 兰州网站推广排名wordpress淘宝发货插件
  • word可以做网页吗m郑州网站优化公司哪家好
  • 西宁城东区建设局公租房网站网站维护更新费用
  • 网站建设维护和网页设计江都建设总部网站
  • 教育模板网站建设如何制作淘客导购网站
  • 天津做网站报价做网站开发教程
  • 33岁改行做网站建设谷歌seo网站推广怎么做优化
  • 乡镇网站建设中的问题近期十大热点事件
  • 网站建设与维护难不难李沧做网站公司
  • 平谷青岛网站建设网站设计流程详细步骤
  • 着力规范网站集约化建设静态网站结构如何更新