圖片上傳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