城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

SpringBoot上传文件返回进度

9月5日 萌嘟嘟投稿
  导入的包dependencygroupIdcommonsfileuploadgroupIdcommonsfileuploadartifactIdversion1。4versiondependency根据自己需要dependencygroupIdorg。projectlombokgroupIdlombokartifactIdoptionaltrueoptionaldependency进度返回类authorLinuxsuser:FBdevice:Windows11createtime:202232remarks:〔〕DatapublicclassProgressimplementsCloneable{privatelongbytesRprivatelongcontentLprivatestaticfinalProgressprogressnewProgress();publicstaticProgressgetInstance(){returnprogress。clone();}OverridepublicProgressclone(){try{return(Progress)super。clone();}catch(CloneNotSupportedExceptione){thrownewAssertionError();}}}文件上传监听器ComponentpublicclassFileUploadListenerimplementsProgressListener{privatefinalMapString,ProgressmapnewConcurrentHashMap();privatefinalHttpServletRpublicFileUploadListener(HttpServletRequestrequest){this。}parambytesRead当前上传大小paramcontentLength总大小paramitems当前上传个数Overridepublicvoidupdate(longbytesRead,longcontentLength,intitems){ProgressprogressProgress。getInstance();progress。setBytesRead(bytesRead);progress。setContentLength(contentLength);progress。setItems(items);可替换成redissessionmap。put(request。getHeader(file),progress);}publicProgressgetMap(Stringheader){returnmap。get(header);}}文件上传解析器ComponentpublicclassCustomMultipartResolverextendsCommonsMultipartResolver{privatefinalFileUploadListenerfileUploadLpublicCustomMultipartResolver(FileUploadListenerfileUploadListener){this。fileUploadListenerfileUploadL}OverrideprotectedMultipartParsingResultparseRequest(HttpServletRequestrequest)throwsMultipartException{StringencodingdetermineEncoding(request);FileUploadfileUploadprepareFileUpload(encoding);设置上传监听器fileUpload。setProgressListener(fileUploadListener);try{ListFileItemfileItems((ServletFileUpload)fileUpload)。parseRequest(request);returnthis。parseFileItems(fileItems,encoding);}catch(FileUploadBase。SizeLimitExceededExceptionvar5){thrownewMaxUploadSizeExceededException(fileUpload。getSizeMax(),var5);}catch(FileUploadBase。FileSizeLimitExceededExceptionvar6){thrownewMaxUploadSizeExceededException(fileUpload。getFileSizeMax(),var6);}catch(FileUploadExceptionvar7){thrownewMultipartException(Failedtoparsemultipartservletrequest,var7);}}}Controller接口RestControllerpublicclassUploadController{privatefinalUploadServiceuploadSpublicUploadController(UploadServiceuploadService){this。uploadServiceuploadS}PostMapping(upload)publicRupload(MultipartFile〔〕file){uploadService。upload(file);returnR。ok()。message(上传成功);}GetMapping(progress)publicRprogress(HttpServletRequestrequest){Stringfilerequest。getHeader(file);if(StringUtils。isNullOrEmpty(file))returnR。error()。message(需要header:〔filexxx〕标识);returnR。ok()。message(uploadService。getUploadDone(file)?上传完成:上传中。。。)。data(uploadService。getProgressStyle(file));}}Service实现类ServicepublicclassUploadServiceImplimplementsUploadService{privatefinalStringBuilderstringBuildernewStringBuilder();privatefinalMapString,ObjectmapnewHashMap(4);构造注入上传监听privatefinalFileUploadLpublicUploadServiceImpl(FileUploadListenerlistener){this。}返回进度参数信息progress:〔〕100,item:3,percent:100,status:overparamheader文件标识returnMapString,Object进度MapOverridepublicMapString,ObjectgetProgressStyle(Stringheader){Progressprogresslistener。getMap(header);if(progressnull)thrownewCustomException(未上传文件);longreadprogress。getBytesRead();longpercent0;if(read!0)percent(read100)progress。getContentLength();map。put(percent,percent);map。put(status,percent100?over:active);map。put(progress,getStyleOfCount(percent));map。put(item,progress。getItems());}判断文件是否上传文成paramheader文件标识returntruefalseOverridepublicbooleangetUploadDone(Stringheader){Progressprogresslistener。getMap(header);if(progressnull)thrownewCustomException(未上传文件);returnprogress。getBytesRead()progress。getContentLength();}文件保存操作这里做存储文件等其他操作操作这里也需要返回进度的话,上面的进度需要2,各记50paramfile文件Overridepublicvoidupload(MultipartFile〔〕file){Arrays。asList(file)。forEach(f{if(f。isEmpty()){thrownewCustomException(文件为空);}else{System。out。println(文件名:f。getOriginalFilename());System。out。println(文件大小:f。getSize());System。out。println(文件类型:f。getContentType());}});}进度样式parampercent进度百分比return〔〕30privateStringgetStyleOfCount(longpercent){stringBuilder。setLength(0);stringBuilder。append(〔);for(inti0;ipercent10;i){stringBuilder。append();}for(inti0;i10(percent10);i){stringBuilder。append();}stringBuilder。append(〕)。append(percent)。append();returnstringBuilder。toString();}}效果
  上传准备
  点击上传后,file是文件的唯一标识,上传时也需要传入
  然后看效果(item是文件个数)
  项目地址:
  SpringBoot上传返回进度【最新】小波博客
投诉 评论 转载

8扬声器2。5K屏幕67W快充骁龙870高生产力的平板推荐第手机已经成为现代人不可或缺的工具了,但手机的生产力终究不如平板,一些人喜欢用大屏追剧,用来画画,学习,记笔记,这个时侯拥有一块好的平板就显得尤为重要,下面就来给大家推荐一款高性……没有了顺风车给你造成了什么困扰?谢谢邀请!滴滴顺风车关闭已经有三个月了,三个月里基本每次出去都是叫的快车,快车价格比顺风车贵出一倍多,体验和顺风车也差不多了,如果要说困扰,那就是少了一个出行的选择,多付……预警盘古社区发行FIST拳头币圈钱上百亿,即将收割跑路昨天暗火了解到一个项目,今天拿出来给各位讲讲,这是一个名叫盘古社区的项目,打着让穷人财富自由的幌子,拉人进群后通过腾讯会议不断洗脑,然后让你购买其发行的虚拟货币,最后达到收割韭……iPhone13ProMax1TB只要7000块?不仅是扩容网友说在朋友圈看到一台iPhone13ProMax1TB,价格非常便宜,只要7000块。问我能不能买!7000块的iPhone13ProMax1TB你敢相信?反正我不相信……SpringBoot上传文件返回进度导入的包dependencygroupIdcommonsfileuploadgroupIdcommonsfileuploadartifactIdversion1。4versio……PythonFlask实现接口接收CPU信息今天的内容是基于PythonFlask实现接口接收内存信息来进一步分享如何使用PythonFlask接收CPU的信息。原理:通过Python调用Shell脚本去执行……聚焦经营痛点微宝贝或破实体店发展难题新湖南客户端12月9日讯(通讯员王佳)新一轮科技革命和产业变革下,经济社会数字化转型呈现加速深化趋势。实体店经营在电子商务的冲击下迎来了巨大挑战。一方面,受互联网冲击、房租人力……AI落地智能制造,TE这场比赛实现了教学相长这个比赛和我之前参加过的其他比赛完全不同,它的解决方案与设计直接贴合一线生产,实际部署也能够快速验证方案的有效性,深入一线了解设计、验证、打磨和迭代的过程,让我们的团队对AI技……中国芯片产业的突破!新一代国产先进光刻机来了,有两个重大意义众所周知,我国在光刻机领域一直处于弱势地位,国内芯片行业的先进光刻机一直依靠进口。《科技日报》在2018年曾经评选出35项制约我国工业发展的卡脖子技术,芯片和光刻机名列前二。……如何保养新能源汽车?随着国家对新能源汽车的大力推广、消费者对新能源汽车认可度的提高,新能源汽车已经走进了我们的生活。新能源汽车与传统汽车的根本区别在于动力燃料供应,因此在日常保养方面也有很大差别。……即热式电热水器到底安不安全?大家好,我是家居领域的乡村里的小伙子,在厨电卫浴行业中工作了十多年,对厨电卫浴的知识有专业的答案,我会把我知道的知识分享给大家,希望大家多多的支持和关注!说到即热式电热水器,大……北京五天发生三起工地意外事故致四人死亡苹果回应系统升级后性能今天的热点新闻你都知道了吗?社会类1、猪牛羊肉上周批发价格都降了据商务部监测,上周(5月3日9日)肉类价格有所下降。其中,猪肉批发价格为每公斤29。07元,下……
美国连遭黑客袭击!威胁食物供应,瘫痪石油管道,五角大楼都难逃中航工业为什么不造单反相机?120W快充一亿像素,现已跌至1749元,小米优质5G手机售Vite2Vue3TypeScript搭建企业级轻量框架实践小米12Ultra渲染图曝光徕卡小红标加身二百多价格千元音质?万魔舒适豆升级版ComfoBuds2,周狗狗币一年涨幅高出400倍,让虚拟货币狗狗币成功出圈2022年鼓励新能源汽车下乡,农村的消费未来十年站在科技前沿的七大专业理工男有优势,女同学可参考人工智能会是铁路的未来吗?用料扎实,双C口满血输出联想小新CC100W氮化镓充电器评测拼多多网购,这3个开关记得关闭,不然会泄露你的购买隐私
小学生作文有话可说的策略减震器生产厂家(汽车十大减震器名牌!)大班教案四书五经指的都是什么书四书五经是什么写买年货作文4篇300字发人深省的哲理小故事则从钟薛高翻车蜜雪冰城出圈,看精英主义的内卷螃蟹怎么保存(活的大闸蟹保存方法)我的中国梦踢足球英语怎么读如何英语表达踢足球女主播与土豪奔现,期间接受转账700W!如今分手被爆实为捞女热月政变和雾月政变有什么关系进一步肃清政权消灭雅

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁