Spring Bootは画像アップロード機能を実現します。
本論文の実例はSpring Bootの画像アップロードの具体的なコードを共有します。
ResultVoオブジェクトのプロパティが与えられました。
Spring Bootに基づく.ymlプロファイルの構成。
画像にアクセスするには、設定が必要です。ymlファイル
スプリング:
铅設定httpがサーバの画像にアクセスするルート
レスキュー:
static-locations:classipath:/META-INF/resource/、classity:/classicatic/、classipath:/public/file:$
そしてサービスのIPとポートに基づいて、http/IP:port/resource/static/ピクチャパス(写真名)
もっと素晴らしい内容は「springアップロードはテーマをダウンロードします」をクリックして深く勉強してください。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
package com.clou.inteface.domain.web.user;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
*
* @author Fly
*
*/
@RestController
public class FileUpload {
/**
* ->
*/
@Autowired
private SUserService sUserService;
/**
* ( Spring application.yml ):<br>
* web:
* upload-path: (jar )/resources/static/
*/
@Value("${web.upload-path}")
private String webUploadPath;
/**
* ResultVo , :
* private int errorCode;
* private String errorMsg;
* private Integer total;
* private Object data;
*/
/**
*
* @param file
* @param userId
* @return
*/
@PostMapping(value = "/fileUpload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultVo fileUpload(@RequestParam("file") MultipartFile file, @RequestParam("userId") Integer userId) {
ResultVo resultVo = new ResultVo();
if (!file.isEmpty()) {
if (file.getContentType().contains("image")) {
try {
String temp = "images" + File.separator + "upload" + File.separator;
//
String fileName = file.getOriginalFilename();
//
String extensionName = StringUtils.substringAfter(fileName, ".");
// = +"."
String newFileName = String.valueOf(System.currentTimeMillis()) + "." + extensionName;
//
String datdDirectory = temp.concat(String.valueOf(userId)).concat(File.separator);
//
String filePath = webUploadPath.concat(datdDirectory);
File dest = new File(filePath, newFileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
// , ,
SUser userInfo = sUserService.findUserInfo(userId.toString());
if (StringUtils.isNotBlank(userInfo.getUserHead())) {
String oldFilePath = webUploadPath.concat(userInfo.getUserHead());
File oldFile = new File(oldFilePath);
if (oldFile.exists()) {
oldFile.delete();
}
}
//
file.transferTo(dest);
// BASE64
//BASE64Encoder encoder = new BASE64Encoder();
//String data = encoder.encode(file.getBytes());
//
String data = datdDirectory.replaceAll("\\\\", "/") + newFileName;
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("file", data);
resultVo.setData(resultMap);
resultVo.setError(1, " !");
} catch (IOException e) {
resultVo.setError(0, " !");
}
} else {
resultVo.setError(0, " , !");
}
return resultVo;
} else {
resultVo.setError(0, " , !");
return resultVo;
}
}
}
以上のコードはSUserService、一つの業務層インターフェースを配置する必要があります。ResultVoオブジェクトのプロパティが与えられました。
Spring Bootに基づく.ymlプロファイルの構成。
画像にアクセスするには、設定が必要です。ymlファイル
スプリング:
铅設定httpがサーバの画像にアクセスするルート
レスキュー:
static-locations:classipath:/META-INF/resource/、classity:/classicatic/、classipath:/public/file:$
そしてサービスのIPとポートに基づいて、http/IP:port/resource/static/ピクチャパス(写真名)
もっと素晴らしい内容は「springアップロードはテーマをダウンロードします」をクリックして深く勉強してください。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。