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

胶州为企业做网站的公司2022最新永久地域网名

胶州为企业做网站的公司,2022最新永久地域网名,wordpress模板 图片站,西安网站优化公司代码如下 值得注意的是上传时候不需要参数servletRequest而下载时候却需要servletResponse,这是为什么呢? 这是因为文件上传时,客户端通过 HTTP POST 请求将文件数据放在 请求体(Body) 中。Spring MVC 对上传过程进行…

代码如下

值得注意的是上传时候不需要参数servletRequest而下载时候却需要servletResponse,这是为什么呢?

这是因为文件上传时,客户端通过 HTTP POST 请求将文件数据放在 请求体(Body) 中。Spring MVC 对上传过程进行了高度封装,开发者无需直接操作 HttpServletRequest:

  • 框架自动解析:当请求的 Content-Type 为 multipart/form-data 时,Spring 会自动解析请求体,并将文件内容封装为 MultipartFile 对象。

  • 简化参数绑定:通过 @RequestParam(“file”) MultipartFile file 即可直接获取文件对象,无需手动从 HttpServletRequest 中提取数据。

那为什么需要servletResponse呢?

  • 因为文件内容需要直接写入响应输出流,而 Spring 的 @ResponseBody 或 ResponseEntity 适用于结构化数据(如 JSON),不适合大文件流式传输。
package com.xxx.xxxxx.controller;import com.xxx.xxxxx.common.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.UUID;/*** 文件上传和下载*/
@RestController
@RequestMapping("/common")
@Slf4j
public class CommonController {// 这个在application.yml里配置@Value("${reggie.path}")private String basePath;/*** 文件上传* @param file* @return*/@PostMapping("/upload")public httpResp<String> upload(@RequestParam("file") MultipartFile file){// file是一个临时文件,需要转存到指定位置,否则本次请求完成后临时文件会删除log.info(file.toString());//原始文件名String originalFilename = file.getOriginalFilename();//abc.jpgString suffix = originalFilename.substring(originalFilename.lastIndexOf("."));//使用UUID重新生成文件名,防止文件名称重复造成文件覆盖String fileName = UUID.randomUUID().toString() + suffix;//dfsdfdfd.jpg//创建一个目录对象File dir = new File(basePath);//判断当前目录是否存在if(!dir.exists()){//目录不存在,需要创建dir.mkdirs();}try {// 将临时文件转存到指定位置file.transferTo(new File(basePath + fileName));} catch (IOException e) {e.printStackTrace();}return httpResp.success(fileName);}/*** 文件下载* @param name* @param response*/@GetMapping("/download")public void download(String name, HttpServletResponse response){try {//输入流,通过输入流读取文件内容FileInputStream fileInputStream = new FileInputStream(new File(basePath + name));//输出流,通过输出流将文件写回浏览器,因为我们要把文件返还回去,所以要ServletResponseServletOutputStream outputStream = response.getOutputStream();response.setContentType("image/jpeg");int len = 0;byte[] bytes = new byte[1024];while ((len = fileInputStream.read(bytes)) != -1){outputStream.write(bytes,0,len);outputStream.flush();}//关闭资源outputStream.close();fileInputStream.close();} catch (Exception e) {e.printStackTrace();}}
}
http://www.dtcms.com/wzjs/110116.html

相关文章:

  • 开网站做一个交易所怎么做口碑最好的it培训机构
  • wordpress外贸网站好用的模板google搜索
  • 网站运营专员岗位要求抖音推广网站
  • 那些网站可以做淘宝店铺推广哈尔滨seo关键词
  • 企业宣传网站制作百度搜索数据
  • 销售网站后台维护怎么做惠州企业网站建设
  • 网站建设 武讯科技网站生成
  • 百度怎么做自己网站新闻10 30字
  • 行业外贸网站建设西安全网优化
  • 北京站网站建设域名比价网
  • 网站站内推广计划书网购网站十大排名
  • 邢台提供网站建设公司报价如何进行app推广
  • 淘宝优惠券私人查券网站怎么做怎么成为百度推广代理商
  • 做网站需要撑握哪些技术百度网址是多少
  • 网站页面设计说明网络热词2022流行语及解释
  • 高校学校网站建设销售管理怎么带团队
  • 网站首页做几个关键词重庆网站推广专家
  • 怎么用代码做网站网站收录教程
  • 网站界面要求百度财报q3
  • 淄博做网站公司全网推广公司
  • 合肥专业做网站的公司长春网站制作推广
  • 哪家公司因为做网站失败了cps游戏推广平台
  • 云南建设网站百度指数需求图谱
  • 广州信科做网站列表网推广收费标准
  • 做网站优化哪家公司好网络热词英语
  • 可做装饰推广的网站seo主管招聘
  • 成都网站建设及推广广告推广策划方案
  • wordpress添加快速添加按钮新十条优化措施
  • 徐州网站优化百度搜索热词查询
  • 长沙做旅游网站公司网络营销优化推广