图片上传FastDFS服务器
安装图片服务器FastDFS
启动CentOS-fastDFS-189虚拟机
选我已移动该虚拟机,只需要修改虚拟机IP、关网
选我已复制该虚拟机,需要修改虚拟机IP、关网以及网卡地址
CentOS-fastDFS-189虚拟机的用户名:root 密码:123123
修改虚拟机IP、关网
vi/etc/sysconfig/network
init 0
secureCRT工具启动tracker、storage、nginx
ps -ef |grep tracker
ps -ef |grep storage
ps -ef |grep nginx
关闭防火墙:service iptables stop
FastDFS 服务器的配置:
重启tracker、storage
/usr/bin/fdfs_trackerd/etc/fdfs/tracker.conf restart
查看tracker是否重启
重启storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
FastDFS-nginx-module配置:
vim/etc/fdfs/mod_fastdfs.conf
Nginx中nginx.conf配置:
重启nginx查看:
安装FastDFS 客户端
工具类上传图片:
配置tracker服务器:
buy-common工具工程pom中配置fastdfs客户端依赖
|
<!-- fastDFS客户端 --> <dependency> <groupId>fastdfs_client</groupId> <artifactId>fastdfs_client</artifactId> <version>1.25</version> </dependency> |
Web工程pom中配置文件上传组件依赖
|
<!-- 文件上传组件 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> </dependency>
|
Web工程springmvc.xml配置文件上传的相关配置
|
<!-- 文件上传的相关配置 --> <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> |
Controller层配置
|
@Controller public class PictuerController {
@Value("${IMAGE_SERVER}") private String IMAGE_SERVER;
@RequestMapping(value="/pic/upload",produces=MediaType.TEXT_PLAIN_VALUE+";charset=utf-8") @ResponseBody public String uploadFile(MultipartFile uploadFile) throws JsonProcessingException{ Map result = new HashMap(); //将图片上传到图片服务器 try { FastDFSClient client = new FastDFSClient("classpath:conf/client.conf"); //获取文件后缀 String fileName = uploadFile.getOriginalFilename(); //注意不能包含 . String ext = fileName.substring(fileName.lastIndexOf(".")+1); //利用工具类,将图片上传到图片服务器 String path = client.uploadFile(uploadFile.getBytes(),ext); // group1/M00/00/00/wKgIcFrxtzSAdEybAADbmEFe3tA712.jpg System.out.println(path); //上传成功 result.put("error", 0); result.put("url", IMAGE_SERVER+path); } catch (Exception e) { //上传失败 result.put("error", 1); result.put("message", "上传失败!"); e.printStackTrace(); } return new ObjectMapper().writeValueAsString(result); }; } |
上传图片页面有问题及解决如图:
成功:
断点调试设置:
查看fastDFS服务器中上传的图片:
先运行服务层,在运行表现层
运行时报错如图:
解决:1、重启storage、tracker
2、检查storage、tracker的IP是否配正确
3、storage.conf、tracker.conf、client.conf中IP配置是不是在最原始的storage.conf、tracker.conf、client.conf如图下的位置,而不是在其他位置storage.conf、tracker.conf、client.conf的修改IP