多圖片文件上傳實現並經過 PostMan 測試

項目的框架是springCloud 的一個服務,圖片上傳實際上就是用java的IO 流進行讀寫文件,給後臺傳遞一個路徑,後臺經過瀏覽器連接到前端,將前端的圖片數據拷貝的服務器的存儲地址。前端

1. 服務端保存圖片的地址:java

application.yml 文件中添加以下配置:web

img:
  location: E:\hjy\workspace\wx-back-web\src\main\webapp\olimg\

二、有關文件上傳實現spring

.Controller 中獲取路徑的瀏覽器

import org.springframework.beans.factory.annotation.Value;


  @Value("${img.location}")
	private String location;

  Controller 中的方法:服務器

import org.springframework.web.bind.annotation.PathVariable;


@RequestMapping("/uploadImg/{imgType}")
	public String uploadImg(
			@RequestParam("ediormd-image-file") MultipartFile[] files,@PathVariable("imgType") String imgType) {
		ResponseData res = new ResponseData();
         List<ProductPic> proPicList = new ArrayList<ProductPic> ();
        String filePath = location + imgType +"/";
        try {
        	if(files != null && files.length >0){
        		for( int i=0;i<files.length;i++){
        			ProductPic proPic = new ProductPic();
        			MultipartFile file = files[i];
        			String contentType = file.getContentType();
        			String fileName = file.getOriginalFilename();
        			System.out.println("fileName-->" + fileName);
        			System.out.println("getContentType-->" + contentType);
        			String resfileNewName = FileUtil.uploadFile(file.getBytes(), filePath, fileName);
        			proPic.setPicUrl(filePath +resfileNewName);
        			if(imgType.equals("list")){
        				proPic.setPicName("列表圖");
        			}else if("caro".equals(imgType)){
        				proPic.setPicName("輪播圖");
        			}else if("intr".equals(imgType)){
        				proPic.setPicName("介紹圖");
        			}else if("thum".equals(imgType)){
        				proPic.setPicName("縮略圖");
        			}
        			proPicList.add(proPic);
        		}
        	}
			res.setCode(Constant.SUCCESS_CODE);
			res.setResult(proPicList);
			res.setMessage(Constant.SUCCESS_MSG);
		} catch (IOException e) {
			e.printStackTrace();
			res.setCode(Constant.FAIL_CODE);
			res.setMessage(Constant.FAIL_MSG);
		} catch (Exception e) {
			e.printStackTrace();
			res.setCode(Constant.FAIL_CODE);
			res.setMessage(Constant.FAIL_MSG);
		}
		JSONObject rdJson = JSONObject.fromObject(res);
		return rdJson.toString();
	}

輔助類ResponseData app

public class ResponseData {
	private Object result; // 返回結果
	private Object baseResult;// 基礎信息返回結果
	private String code; // 返回code
	private String message; // 返回提醒消息

	public Object getResult() {
		return result;
	}

	public void setResult(Object result) {
		this.result = result;
	}

	public Object getBaseResult() {
		return baseResult;
	}

	public void setBaseResult(Object baseResult) {
		this.baseResult = baseResult;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

}

文件上傳服務類:框架

public class FileUtil {

	/**
	 * 上傳文件並返回文件的名字
	 * @param file
	 * @param filePath
	 * @param fileName
	 * @return
	 * @throws Exception
	 */
	public static String uploadFile(byte[] file,String filePath,String fileName) throws Exception{
		String time = DateHelper.formatDate(new Date(), "yyMMddHHssmm");
        fileName = time +"_" +fileName ;
		File targetFile = new File(filePath);
		if(!targetFile.exists()){
			targetFile.mkdir();
		}
		
		FileOutputStream out = new FileOutputStream(filePath + fileName);
		out.write(file);
		out.flush();
		out.close();
		
		return fileName;
	}
}

3. 經過PostMan 測試webapp

  安裝以下圖紅色標註的,就能夠實現對圖片上傳的測試,測試

相關文章
相關標籤/搜索