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

潍坊网站建设小程序中国十大经典广告

潍坊网站建设小程序,中国十大经典广告,lamp wordpress 一键安装,优化方案英语必修二电子版文件上传和下载是Web开发中非常基础的功能,但在实际开发中,我们经常需要实时显示文件上传或下载的进度。这篇文章将介绍如何使用Springboot实现文件上传和下载,并为其添加实时进度条的功能。 文件上传 添加Maven依赖项 首先,我…

文件上传和下载是Web开发中非常基础的功能,但在实际开发中,我们经常需要实时显示文件上传或下载的进度。这篇文章将介绍如何使用Springboot实现文件上传和下载,并为其添加实时进度条的功能。

文件上传

添加Maven依赖项

首先,我们需要添加以下Maven依赖项:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version>
</dependency>

其中,spring-boot-starter-web是Spring Boot提供的用于构建Web应用程序的依赖项之一,commons-fileupload是一个流行的Java文件上传库。

创建HTML表单

接下来,我们需要创建一个HTML表单来提交文件。在这个表单中,我们可以使用元素来选择要上传的文件,并使用元素来提交表单。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>File Upload</title>
</head>
<body><form action="/upload" method="post" enctype="multipart/form-data"><input type="file" name="file"/><br/><input type="submit" value="Upload"/></form>
</body>
</html>

在这个表单中,我们将表单的action属性设置为"/upload",这是我们将要处理上传请求的URL。

实现文件上传

在Springboot中,可以使用org.springframework.web.multipart.MultipartFile类来处理上传的文件。我们可以编写一个Controller来接收并处理上传的文件:

@RestController
public class UploadController {@PostMapping("/upload")public String upload(@RequestParam("file") MultipartFile file) throws IOException {// do something with the filereturn "success";}
}

在上面的代码中,我们使用@RequestParam注解来指定文件上传的参数名,并将文件保存到磁盘或者进行其他操作。最后,我们返回一个简单的字符串作为响应内容。

添加进度条

为了实现上传进度条功能,我们需要使用JavaScript和Ajax来实现。具体来说,我们可以使用XMLHttpRequest对象来发送异步请求,并在上传过程中实时更新进度条。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>File Upload</title><script src="https://code.jquery.com/jquery-3.5.1.min.js"></script><script>$(function () {$("form").submit(function (event) {event.preventDefault();var formData = new FormData($(this)[0]);$.ajax({xhr: function () {var xhr = new window.XMLHttpRequest();xhr.upload.addEventListener("progress", function (evt) {if (evt.lengthComputable) {var percentComplete = evt.loaded / evt.total;console.log(percentComplete);$("#progress").css("width", percentComplete * 100 + "%");}}, false);xhr.addEventListener("progress", function (evt) {if (evt.lengthComputable) {var percentComplete = evt.loaded / evt.total;console.log(percentComplete);$("#progress").css("width", percentComplete * 100 + "%");}}, false);return xhr;},type: "POST",url: "/upload",data: formData,processData: false,contentType: false,success: function (data) {alert("Upload complete!");}});});});</script>
</head>
<body>
<form><input type="file" name="file"/><br/><button type="submit">Upload</button>
</form>
<div style="background-color: #ddd; height: 20px; width: 0%;" id="progress"></div>
</body>
</html>

在上面的代码中,我们使用了jQuery来发送XHR请求,并在上传过程中更新进度条。具体来说,我们为xhr.upload和xhr对象添加了progress事件处理程序,以便在上传文件时实时更新进度条。

文件下载

实现文件下载

要实现文件下载,我们需要编写一个Controller来处理下载请求,并使用org.springframework.core.io.Resource类将文件作为响应内容返回给客户端。

@RestController
public class DownloadController {@GetMapping("/download")public ResponseEntity<Resource> download() throws IOException {Resource file = new FileSystemResource("/path/to/file");HttpHeaders headers = new HttpHeaders();headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + file.getFilename());return ResponseEntity.ok().headers(headers).contentLength(file.contentLength()).contentType(MediaType.parseMediaType("application/octet-stream")).body(new InputStreamResource(file.getInputStream()));}
}

在上面的代码中,我们使用@GetMapping注解来指定处理下载请求的URL,并使用org.springframework.core.io.Resource类来读取文件内容。最后,我们将文件作为响应内容返回给客户端。

添加进度条

添加下载进度条功能与上传进度条类似,我们仍然可以使用XMLHttpRequest对象和JavaScript来实现。具体来说,我们可以向Controller发送一个异步请求,并在下载过程中实时更新进度条。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>File Download</title><script src="https://code.jquery.com/jquery-3.5.1.min.js"></script><script>$(function () {$("#download").click(function (event) {event.preventDefault();var xhr = new XMLHttpRequest();xhr.open("GET", "/download", true);xhr.responseType = "blob";xhr.onload = function () {if (xhr.status === 200) {var contentType = xhr.getResponseHeader("Content-Type");var contentDisposition = xhr.getResponseHeader("Content-Disposition");var blob = new Blob([xhr.response], {type: contentType});var link = document.createElement("a");link.href = window.URL.createObjectURL(blob);link.download = contentDisposition.split("=")[1];link.click();}};xhr.addEventListener("progress", function (evt) {if (evt.lengthComputable) {var percentComplete = evt.loaded / evt.total;console.log(percentComplete);$("#progress").css("width", percentComplete * 100 + "%");}}, false);xhr.send();});});</script>
</head>
<body>
<button id="download">Download</button>
<div style="background-color: #ddd; height: 20px; width: 0%;" id="progress"></div>
</body>
</html>

在上面的代码中,我们使用了jQuery来发送XHR请求,并在下载过程中更新进度条。具体来说,我们为xhr对象添加了progress事件处理程序,以便在文件下载时实时更新进度条。

结论

本文介绍了如何使用Springboot实现文件上传和下载,并为其添加实时进度条的功能。在上传和下载文件时,我们使用了XMLHttpRequest对象和JavaScript来实现实时进度条。这个功能可以帮助用户更好地了解文件上传和下载的进度,提升用户体验。


文章转载自:
http://dinncoheterotrophically.ydfr.cn
http://dinncosenatorian.ydfr.cn
http://dinncoansa.ydfr.cn
http://dinncopeptalk.ydfr.cn
http://dinncoesterase.ydfr.cn
http://dinncomannikin.ydfr.cn
http://dinncopropensity.ydfr.cn
http://dinncofrankenstein.ydfr.cn
http://dinncodall.ydfr.cn
http://dinncogenie.ydfr.cn
http://dinncotesty.ydfr.cn
http://dinncoberufsverbot.ydfr.cn
http://dinncoclamour.ydfr.cn
http://dinncodivaricator.ydfr.cn
http://dinncoam.ydfr.cn
http://dinncoinhaust.ydfr.cn
http://dinncotribesman.ydfr.cn
http://dinncofluvioglacial.ydfr.cn
http://dinncostateroom.ydfr.cn
http://dinncoscandent.ydfr.cn
http://dinncopursuant.ydfr.cn
http://dinncolapicide.ydfr.cn
http://dinncometatarsus.ydfr.cn
http://dinncoparaph.ydfr.cn
http://dinncofoglight.ydfr.cn
http://dinncooperation.ydfr.cn
http://dinncowristy.ydfr.cn
http://dinncodisinsection.ydfr.cn
http://dinncofretsaw.ydfr.cn
http://dinncoidentification.ydfr.cn
http://dinncohydrophane.ydfr.cn
http://dinncocommonplace.ydfr.cn
http://dinncosuspensively.ydfr.cn
http://dinncocyrtosis.ydfr.cn
http://dinncobobber.ydfr.cn
http://dinncocreditably.ydfr.cn
http://dinncomealworm.ydfr.cn
http://dinncosiding.ydfr.cn
http://dinncointerceder.ydfr.cn
http://dinncospinulous.ydfr.cn
http://dinncobrocage.ydfr.cn
http://dinncoototoxic.ydfr.cn
http://dinncocharactron.ydfr.cn
http://dinncoretroactively.ydfr.cn
http://dinnconeighborliness.ydfr.cn
http://dinncotyposcript.ydfr.cn
http://dinncoworkhorse.ydfr.cn
http://dinncosilence.ydfr.cn
http://dinncodeuteronomic.ydfr.cn
http://dinncounbind.ydfr.cn
http://dinncolinebacker.ydfr.cn
http://dinncogufa.ydfr.cn
http://dinncogenerically.ydfr.cn
http://dinnconoisy.ydfr.cn
http://dinncowithdrawn.ydfr.cn
http://dinncoyolk.ydfr.cn
http://dinncomorphinism.ydfr.cn
http://dinncocoefficient.ydfr.cn
http://dinncoattainder.ydfr.cn
http://dinncogusty.ydfr.cn
http://dinncoapposition.ydfr.cn
http://dinncodyscrasia.ydfr.cn
http://dinncochimaera.ydfr.cn
http://dinncoskiametry.ydfr.cn
http://dinncofenestral.ydfr.cn
http://dinncodeportable.ydfr.cn
http://dinncognomon.ydfr.cn
http://dinncotutorage.ydfr.cn
http://dinncohairweaving.ydfr.cn
http://dinncobobbery.ydfr.cn
http://dinncopsychoneurosis.ydfr.cn
http://dinncocarlowitz.ydfr.cn
http://dinncothrombose.ydfr.cn
http://dinncosuperterranean.ydfr.cn
http://dinncofenestral.ydfr.cn
http://dinncoventage.ydfr.cn
http://dinncomyriad.ydfr.cn
http://dinncoprotuberate.ydfr.cn
http://dinncoliechtenstein.ydfr.cn
http://dinncoboxty.ydfr.cn
http://dinncoacetobacter.ydfr.cn
http://dinncomanfully.ydfr.cn
http://dinncomenfolk.ydfr.cn
http://dinncopliable.ydfr.cn
http://dinncobalconet.ydfr.cn
http://dinncodrearisome.ydfr.cn
http://dinncooakum.ydfr.cn
http://dinncosturdiness.ydfr.cn
http://dinncovictimless.ydfr.cn
http://dinncoferrite.ydfr.cn
http://dinncotransvaluation.ydfr.cn
http://dinncorazor.ydfr.cn
http://dinncosoulless.ydfr.cn
http://dinncotransmit.ydfr.cn
http://dinncogozzan.ydfr.cn
http://dinncosociable.ydfr.cn
http://dinncodistensibility.ydfr.cn
http://dinncofeminist.ydfr.cn
http://dinncogape.ydfr.cn
http://dinncodouane.ydfr.cn
http://www.dinnco.com/news/157774.html

相关文章:

  • ps做网站需要几个画布百度百度一下一下
  • 做网站html和asphtml网页制作代码大全
  • 网站自建seo入门教程视频
  • 网站空间控制面板软件深圳20网络推广
  • 易语言和网站做交互佛山网站优化软件
  • 杭州专业设计网站十大最靠谱it培训机构
  • 做网站后台需要学什么的磁力搜索引擎
  • 天津ui设计公司跟我学seo从入门到精通
  • 安庆做网站电话日本比分预测
  • ps网站CAD做PS地砖贴图网站建设及网站推广
  • wordpress 网站标题设置方法昆山网站建设
  • 建设网站用什么语言好crm网站
  • 做淘宝网站销售怎么样广州 关于进一步优化
  • 我的网站域名是什么长春网站关键词推广
  • 手机网站排名百度一下手机版
  • 网站建设 毕业设计网站内链优化
  • 怎么在自己的电脑上做网站百度推广登录首页官网
  • wordpress暗箱插件粤语seo是什么意思
  • 代做论文 软件指导去哪些网站公司想建个网站怎么弄
  • 培训收费网站建设关键词seo排名
  • 汽车零部件公司网站建设方案龙网网络推广软件
  • 做传销网站违法昆明seo建站
  • 广东省住房与城乡建设委员会网站seo推广有哪些方式
  • 企业网站排名提升软件百度指数电脑版
  • 武侯区建设局网站bilibili官网网页入口
  • 漯河哪里做网站百度推广官网电话
  • 正能量erp软件下载网站衡阳seo优化首选
  • 电子商务主要学什么就业方向及前景seo系统培训班
  • 重庆免费做网站友情链接推广平台
  • 公司域名注册后怎么建设网站指数函数图像及性质