springboot上传文件到resources_spring boot 图片上传到resources/static/upload/imgs目录下

本文将为您描述spring boot 图片上传到resources/static/upload/imgs目录下,教程操作方法:

1.上传方法

package com.*;

import *;

public class BaseController {

protected Logger logger = LoggerFactory.getLogger(getClass());

/**

* 输出JSON数据

*

* @param response

* @param jsonStr

*/

public void writeJson(HttpServletResponse response, String jsonStr) {

response.setContentType("text/json;charset=utf-8");

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", 0);

PrintWriter pw = null;

try {

pw = response.getWriter();

pw.write(jsonStr);

pw.flush();

} catch (Exception e) {

logger.info("输出JSON数据异常", e);

}finally{

if(pw!=null){

pw.close();

}

}

}

/**

*

* 向页面响应json字符数组串流.

*

* @param response

* @param jsonStr

* @throws IOException

* @return void

*/

public void writeJsonStr(HttpServletResponse response, String jsonStr) throws IOException {

OutputStream outStream = null;

try {

response.reset();

response.setCharacterEncoding("UTF-8");

outStream = response.getOutputStream();

outStream.write(jsonStr.getBytes("UTF-8"));

outStream.flush();

} catch (IOException e) {

logger.info("输出JSON数据异常(writeJsonStr)", e);

} finally {

if(outStream!=null){

outStream.close();

}

}

}

public void writeJsonStr(HttpServletResponse response, InputStream in) throws IOException {

if(null == in ){

return ;

}

OutputStream outStream = null;

try {

response.reset();

response.setCharacterEncoding("UTF-8");

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", 0);

outStream = response.getOutputStream();

int len = 0;

byte[] byt = new byte[1024];

while ((len = in.read(byt)) != -1) {

outStream.write(byt, 0, len);

}

outStream.flush();

} catch (IOException e) {

logger.info("输出JSON数据异常(writeJsonStr)", e);

} finally {

if(outStream!=null){

outStream.close();

in.close();

}

}

}

/**

* 输出JSON数据

*

* @param response

* @param obj

*/

public void writeJson(HttpServletResponse response, Object obj) {

response.setContentType("text/json;charset=utf-8");

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", 0);

PrintWriter pw = null;

// Gson gson = new Gson();

try {

pw = response.getWriter();

// pw.write(gson.toJson(obj));

pw.write(JSON.toJSONString(obj));

pw.flush();

} catch (Exception e) {

logger.info("输出JSON数据异常", e);

}finally{

if(pw!=null){

pw.close();

}

}

}

public void writeHtml(HttpServletResponse response, String html) {

response.setContentType("text/html;;charset=utf-8");

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", 0);

PrintWriter pw = null;

try {

pw = response.getWriter();

pw.write(html);

pw.flush();

} catch (Exception e) {

logger.info("输出HTML数据异常", e);

}finally{

if(pw!=null){

pw.close();

}

}

}

}

2.上传功能实现类

package com.*;

import ...;

/**

* 照片上传工具类

* @author admin

*

*/

@Controller

@RequestMapping("/business")

public class UploaderController extends BaseController{

private static final Logger logger = LoggerFactory.getLogger(UploaderController.class);

@ResponseBody

@RequestMapping("/uploadImg")

public ResponseMode uploadPicture(@RequestParam(value="file",required=false)MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException {

ResponseResult result = new ResponseResult();

Map map = Maps.newHashMap();

File targetFile=null;

//返回存储路径

String url="";

int code=1;

System.out.println(file);

//获取文件名加后缀

String fileName = file.getOriginalFilename();

if(fileName != null && fileName != ""){

//图片访问的URI

String returnUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() +"/upload/imgs/";

//文件临时存储位置

String path = request.getSession().getServletContext().getRealPath("") + "upload" + File.separator + "imgs";

//文件后缀

String fileSuffix = fileName.substring(fileName.lastIndexOf("."), fileName.length());

//新的文件名

fileName = System.currentTimeMillis()+"_"+new Random().nextInt(1000) + fileSuffix;

//先判断文件是否存在

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

String fileAdd = sdf.format(new Date());

//获取文件夹路径

path = path + File.separator + fileAdd + File.separator;

logger.info("path:{}",path);

File file1 =new File(path);

//如果文件夹不存在则创建

if(!file1 .exists() && !file1 .isDirectory()){

file1 .mkdirs();

}

//将图片存入文件夹

targetFile = new File(file1, fileName);

try {

//将上传的文件写到服务器上指定的文件。

file.transferTo(targetFile);

String projectPath = System.getProperty("user.dir");

logger.info("projectPath:{}",projectPath);

//文件复制

String src = path + fileName;

//根据自己系统的resource 目录所在位置进行自行配置

String destDir = projectPath + File.separator + "apply-patch"+File.separator+"bank-master"+File.separator+"src"+File.separator+"main"+ File.separator +"resources"+File.separator+"static"+ File.separator+"upload"+File.separator+"imgs" + File.separator + fileAdd + File.separator;

copyFile(src,destDir,fileName);

url= returnUrl + fileAdd + "/"+ fileName;

code=0;

result.setCode(code);

result.setMessage("图片上传成功");

map.put("url", url);

return ResponseMode.success(map);

} catch (Exception e) {

logger.error("exception:",e);

}

}

//writeJson(response, result);

return ResponseMode.fail(new RjRuntimeException("系统异常,稍后再试"));

}

/**

* 文件复制

* @param src

* @param destDir

* @param fileName

* @throws IOException

*/

public void copyFile(String src,String destDir,String fileName) throws IOException{

FileInputStream in=new FileInputStream(src);

File fileDir = new File(destDir);

if(!fileDir.isDirectory()){

fileDir.mkdirs();

}

File file = new File(fileDir,fileName);

if(!file.exists()){

file.createNewFile();

}

FileOutputStream out=new FileOutputStream(file);

int c;

byte buffer[]=new byte[1024];

while((c=in.read(buffer))!=-1){

for(int i=0;i

out.write(buffer[i]);

}

}

in.close();

out.close();

}

}

3.响应dto

package com.*;

import java.util.Map;

/**

* @author ex-qiminhui001

*/

public class ResponseResult {

private Integer code;

private String message;

private Map result;

public Integer getCode() {

return this.code;

}

public void setCode(Integer code) {

this.code = code;

}

public String getMessage() {

return this.message;

}

public void setMessage(String message) {

this.message = message;

}

public Map getResult() {

return this.result;

}

public void setResult(Map result) {

this.result = result;

}

}

参考连接:/d/file/shujuku/mbep0khhnzb boot 图片上传到resources/static/upload/imgs目录下就为您介绍到这里,感谢您关注懒咪学编程c.lanmit.com.

本文地址:https://c.lanmit.com/bianchengkaifa/bianchengkaifajuhe/12223.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值