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

什么网站可以做软件有哪些东西c 网站开发如何每天10点执行任务

什么网站可以做软件有哪些东西,c 网站开发如何每天10点执行任务,dw做网站首页,中国十大公关公司排名文章目录 一、原理分析1.1 请求类型1.2 服务器解析 二、功能实现2.1 创建项目并导入依赖2.2 文件上传功能实现2.2.1 文件上传 Service2.2.2 文件上传 Controller 2.3 文件下载功能实现2.3.1 文件下载 Service2.3.2 文件下载 Controller 2.4 文件上传前端代码(可选)2.4.1 上传文…

文章目录

    • 一、原理分析
      • 1.1 请求类型
      • 1.2 服务器解析
    • 二、功能实现
      • 2.1 创建项目并导入依赖
      • 2.2 文件上传功能实现
        • 2.2.1 文件上传 Service
        • 2.2.2 文件上传 Controller
      • 2.3 文件下载功能实现
        • 2.3.1 文件下载 Service
        • 2.3.2 文件下载 Controller
      • 2.4 文件上传前端代码(可选)
        • 2.4.1 上传文件的 HTML 表单
        • 2.4.2 访问前端页面
    • 三、功能测试
      • 3.1 测试文件上传
      • 3.2 测试文件下载
    • 参考资料

完整案例代码:java-demos/spring-boot-file at main · idealzouhu/java-demos (github.com)

一、原理分析

1.1 请求类型

文件上传通常使用 multipart/form-data 类型的 POST 请求。

  • multipart/form-data:用于在表单提交时上传文件的 MIME 类型。它允许将文件和其他表单字段组合在一起发送,服务器能识别出每个部分并提取出文件。

文件下载则只是简单的 GET 请求。在 Spring MVC 中,返回对象通常是 ResponseEntity 或者 HttpServletResponse 对象。

1.2 服务器解析

现有的 Web 框架都内置了处理文件上传的功能。在 Spring MVC 中, MultipartFile 是用来表示上传的文件,服务器会自动解析该文件并进行处理。

MultipartFile 的常用方法有:

  • getName():获取文件在服务器上的文件名,可能已经被服务器修改。
  • getOriginalFilename():获取文件在客户端上的原始文件名,没有被服务器修改。
  • getContentType():获取文件的内容类型。
  • isEmpty():判断文件是否为空。
  • getSize():获取文件大小(字节)。
  • getBytes():读取文件内容为字节数组。
  • getInputStream():获取文件内容的输入流。
  • getResource():将文件转换为资源对象。
  • transferTo(File dest):将文件内容传输到指定的目标文件。
  • transferTo(Path dest):将文件内容传输到指定的目标路径

二、功能实现

2.1 创建项目并导入依赖

在 start.springboot.io 创建项目,导入以下依赖。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.2 文件上传功能实现

将文件上传的具体逻辑抽象到一个 FileService 中,让 Controller 调用该服务处理上传请求。

2.2.1 文件上传 Service
@Service
public class FileService {/*** 上传文件** @param file* @return*/public String uploadFile(MultipartFile file) {// 检查文件是否为空if (file.isEmpty()) {return "上传失败,因为文件是空的。";}// 获取文件名和保存路径String fileName = file.getOriginalFilename();String filePath = "C:/uploads/"; // 自定义文件保存路径File dest = new File(filePath + fileName);// 确保目录存在if (!dest.getParentFile().exists()) {dest.getParentFile().mkdirs();}// 保存文件try {file.transferTo(dest);return "文件上传成功:" + fileName;} catch (IOException e) {e.printStackTrace();return "文件上传失败。";}}
}
2.2.2 文件上传 Controller
@RequiredArgsConstructor
@RestController
public class FileUploadController {private final FileService fileService;/*** 上传文件自动绑定到 MultipartFile 对象中** @param file 上传文件* @return*/@PostMapping("/upload")public String upload(@RequestParam("file") MultipartFile file) {return fileService.uploadFile(file);}
}

2.3 文件下载功能实现

将文件上传的具体逻辑抽象到一个 FileService 中,让 Controller 调用该服务处理上传请求。

2.3.1 文件下载 Service
@Service
public class FileService {/*** 下载文件** 根据文件名构建文件路径,并检查文件是否存在如果文件不存在,则返回404未找到的响应* 如果文件存在,将文件作为资源包装,并设置HTTP响应头以提示浏览器下载文件** @param fileName 要下载的文件名* @return 包含文件资源的响应实体,如果文件不存在则为404响应*/public ResponseEntity<Resource> downloadFile(String fileName) {// 构建文件路径String filePath = "C:/uploads/" + fileName;File file = new File(filePath);// 检查文件是否存在if (!file.exists()) {// 文件不存在,返回404未找到return ResponseEntity.notFound().build();}// 将文件包装为资源Resource resource = new FileSystemResource(file);// 创建HTTP响应头,用于指定文件下载HttpHeaders headers = new HttpHeaders();headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"");// 返回包含文件资源和响应头的响应实体return ResponseEntity.ok().headers(headers).body(resource);}
}
2.3.2 文件下载 Controller
@RequiredArgsConstructor
@RestController
public class FileDownloadController {private final FileService fileService;@GetMapping("/download")public ResponseEntity<Resource> downloadFile(@RequestParam String fileName) {return fileService.downloadFile(fileName);}
}

2.4 文件上传前端代码(可选)

该部分代码为 [2.2 文件上传功能实现](###2.2 文件上传功能实现) 的前端实现。

2.4.1 上传文件的 HTML 表单

创建 upload.html 文件,放在 src/main/resources/static 目录下。

<!DOCTYPE html>
<html>
<head><title>File Upload</title>
</head>
<body><h2>Upload a file</h2><form id="uploadForm"><label for="file">Choose file to upload:</label><input type="file" id="file" name="file" required /><br><br><button type="submit">Upload</button>
</form><script>document.getElementById('uploadForm').addEventListener('submit', function(event) {event.preventDefault();  // 防止表单的默认提交行为const fileInput = document.getElementById('file');const formData = new FormData();formData.append('file', fileInput.files[0]);// 使用 Fetch API 发送文件到后端fetch('/upload', {method: 'POST',body: formData}).then(response => response.text()).then(data => alert('File uploaded successfully: ' + data)).catch(error => console.error('Error uploading file:', error));});
</script></body>
</html>

其中,表单中 name="file" 指定了文件在请求体中的键,后端服务器将通过这个名称来获取文件数据。

2.4.2 访问前端页面

进入前端页面的 URL 为 http://localhost:8080/upload.html

在这里插入图片描述

三、功能测试

3.1 测试文件上传

使用 Postman 发送 POST 请求到 /upload,并选择一个文件进行上传。示例 URL 为

http://localhost:8080/upload

在这里插入图片描述

3.2 测试文件下载

使用 Postman 或 HTML 表单发送 POST 请求,下载指定的文件。

示例 URL 为 http://localhost:8080/download?fileName=demo.txt

在这里插入图片描述

参考资料

Java实战:Spring Boot 实现文件上传下载功能_springboot 文件下载-CSDN博客

Spring Boot文件上传与下载讲解与实战(超详细 附源码)-阿里云开发者社区 (aliyun.com)

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

相关文章:

  • 免费做淘宝联盟网站信阳seo优化顾问
  • 亚马逊品牌备案网站怎么做WordPress自动文章
  • 建设网站以后怎么让百度收录呢烟台网站制作专业
  • 题库网站开发做网站的数据库的设计
  • 医疗网站建设渠道福建省城乡和建设厅网站
  • 做网站首页文字排版技巧网站如何伪静态
  • 百度有没有做游戏下载网站吗英语工作室网站怎么做
  • 免费网站自助建站用凡科做的手机网站版
  • 学ui可以做网站么衡阳seo外包
  • 如何把自己的网站推广出去在线网站建设价格多少
  • 社交网站开发成本南昌市 做网站的公司
  • 做外贸的怎么建立自己的网站中国电信商圈经验分享
  • 买的网站可做360广告联盟吗做网站的公司地址
  • 西湖区商城网站建设网站诚信体制建设
  • jsp网站开发网上订餐系统邹平做网站哪家好
  • 做外贸有哪些好的网站有哪些内容推广seo公司
  • 电商网站 开发成本制作软件app有哪些
  • 如何做好企业网站建设工作wordpress 开启ssl
  • 昆明驿站网站建设试玩网站设计建设
  • 上海网站开发哪里有全国学校网站建设
  • 产品经理如何做p2p网站改版cm域名网站
  • 本地搭建wordpress建站教程如何建设网站简介
  • 人力招聘网站建设做视频找空镜头那个网站比较全
  • 网站 维护 费用重庆做网站电话
  • 樟树网站制作wordpress文章末尾添加相关文章
  • 行业应用网站建设成本分析杭州高端网站建设开发的区别
  • 网站 需求文档PS做任务的网站
  • 网站icp备案怎么写广元市利州区建设局网站
  • 公司网站优化怎么做asp网站版权
  • 在线ui设计网站深圳外贸建站