A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】品优购电商系统开发第 5 章 八

6.商家后台-商品录入【商品图片上传】
6.1 需求分析
在商品录入界面实现多图片上传

当用户点击新建按钮,弹出上传窗口


6.2 后端代码
6.2.1 工具类
1pinyougou-common 工程 pom.xml 引入依赖

[AppleScript] 纯文本查看 复制代码
<!-- 文件上传组件 -->
<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.2.2 配置文件
1)将“资源/fastDFS/配置文件”文件夹中的 fdfs_client.conf 拷贝到 pinyougou-shop-web工程 config 文件夹
2)在 pinyougou-shop-web 工程 application.properties 添加配置

[AppleScript] 纯文本查看 复制代码
FILE_SERVER_URL=http://192.168.25.133/

3)在 pinyougou-shop-web 工程 springmvc.xml 添加配置:
[AppleScript] 纯文本查看 复制代码
 <!-- 配置多媒体解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设定文件上传的最大值 5MB,5*1024*1024 -->
<property name="maxUploadSize" value="5242880"></property>
</bean> 


6.2.3 控制层
pinyougou-shop-web 新建 UploadController.java
[AppleScript] 纯文本查看 复制代码
 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, "上传失败");
}
}
}



1 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马