商家后台-商品录入【商品图片上传】 6.1 需求分析 在商品录入界面实现多图片上传 当用户点击新建按钮,弹出上传窗口 6.1 后端代码 6.1.1 工具类 (1)pinyougou-common 工程 pom.xml 引入依赖

<!-- 文件上传组件 -->

<dependency>
 
<groupId>org.csource.fastdfs</groupId>
 
<artifactId>fastdfs</artifactId>
 
</dependency>
 
<dependency>
 
<groupId>commons-fileupload</groupId>
 
<artifactId>commons-fileupload</artifactId>
 
</dependency>

(2)将“资源/fastDFS/工具类”的 FastDFSClient.java 拷贝到 pinyougou-common 工程 6.1.1 配置文件 (1)将“资源/fastDFS/配置文件”文件夹中的 fdfs_client.conf 拷贝到 pinyougou-shop-web 工程 config 文件夹 (2)在 pinyougou-shop-web 工程 application.properties 添加配置


<property name="defaultEncoding" value="UTF-8"></property>

<!-- 设定文件上传的最大值 5MB,510241024 -->

<property name="maxUploadSize" value="5242880"></property>

</bean>

6.1.1 控制层 在 pinyougou-shop-web 新建 UploadController.java

package com.pinyougou.shop.controller;

import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import entity.Result;

 

import util.FastDFSClient;

/**

*文件上传 Controller

*@author Administrator

*/ @RestController public class UploadController {

@Value("${FILE_SERVER_URL}")


private String FILE_SERVER_URL;//文件服务器地址

@RequestMapping("/upload")

public Result upload( MultipartFile file){

//1、取文件的扩展名

String originalFilename = file.getOriginalFilename();

String extName = originalFilename.substring(originalFilename.lastIndexOf(".")

  • 1);

try {

//2、创建一个 FastDFS 的客户端

FastDFSClient fastDFSClient

= new FastDFSClient("classpath:config/fdfs_client.conf");

//3、执行上传处理

String path = fastDFSClient.uploadFile(file.getBytes(), extName);

//4、拼接返回的 url 和 ip 地址,拼装成完整的 url

String url = FILE_SERVER_URL + path;

return new Result(true,url);

} catch (Exception e) { e.printStackTrace(); return new Result(false, "上传失败");

}

}

}