ftp上传图片出现550_FtpClient 实现文件上传
生活随笔
收集整理的這篇文章主要介紹了
ftp上传图片出现550_FtpClient 实现文件上传
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FtpUtils 工具類封裝
public static boolean uploadFile( String hostname, int port, String username, String password, String pathname, String remote,InputStream local) { boolean flag=false; try{ //創建 FtpClient 對象 FTPClient client=new FTPClient(); //建立和 ftp服務器的鏈接 client.connect(hostname, port); //登陸 ftp服務器 client.login(username, password); //設置上傳的文件的類型 client.setFileType(FTP.BINARY_FILE_TYPE); //切換工作目錄,文件上傳后保存到那個目錄 if(!client.changeWorkingDirectory(pathname)){ if(client.makeDirectory(pathname)){ client.changeWorkingDirectory(pathname); } } local=new FileInputStream("D:/pic/1.jpg"); //實現文件上傳 client.storeFile(remote, local); local.close(); client.logout(); client.disconnect(); flag=true; }catch(Exception ex){ ex.printStackTrace(); } return flag; }通過 Http 訪問圖片
Ego 上傳商品圖片
前端控件參數說明
提交上傳請求路徑 url
提交圖片參數名稱
上傳后返回值 json模型
參考 kindeditor 控件文件上傳文檔:
KindEditor 4.x Documentation
2.2 創建 PictureResult 封裝返回值
package com.bjsxt.ego.beans;/*** * 封裝上傳圖片之后的返回結果 * **/ public class PictureResult { private Integer error; //狀態 1 失敗 0 成功 private String url; // 上傳圖片后,圖片在服務器的 url private String message; //響應到客戶端的提示消息 public Integer getError() { return error; } public void setError(Integer error) { this.error = error; } public String getUrl() { return url; } public void setUrl(String url) {this.url = url;} public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }ego-manager-web 功能實現
創建 ftp.properties
FTP_HOST=192.168.30.30FTP_PORT=21 FTP_USERNAME=ftpuser FTP_PASSWORD=ftpuser FTP_PATH=/home/ftpuser/jd IMAGE_HTTP_PATH=http://image.taotao.com/jd創建工具類 IDUtils
ManagerItemService 接口添加方法
public PictureResult uploadItemPic(MultipartFile file);
ManagerItemServiceImpl 實現方法
//通過 spring 的 EL表達式注入 ftp信息 @Value("${FTP_HOST}") private String FTP_HOST; @Value("${FTP_PORT}") private Integer FTP_PORT; @Value("${FTP_USERNAME}") private String FTP_USERNAME; @Value("${FTP_PASSWORD}") private String FTP_PASSWORD; @Value("${FTP_PATH}") private String FTP_PATH; @Value("${IMAGE_HTTP_PATH}") private String IMAGE_HTTP_PATH; @Override public PictureResult uploadItemPic(MultipartFile file) { // TODO Auto-generated method stub boolean flag=false; String fileName=null; try{ //獲得信息的文件名字 fileName=IDUtils.genImageName(); //獲得上傳的文件的原始名字 String oriName = file.getOriginalFilename(); //獲得文件擴展名 String ext=oriName.substring(oriName.lastIndexOf(".")); fileName=fileName+ext; InputStream local = file.getInputStream(); //實現文件上傳到ftp flag=FtpUtils.uploadFile(FTP_HOST, FTP_PORT, FTP_USERNAME, FTP_PASSWORD, FTP_PATH, fileName, local); }catch(Exception ex){ ex.printStackTrace(); flag=false; } PictureResult result=null; if(flag){ result=new PictureResult();result.setError(0); result.setUrl(IMAGE_HTTP_PATH+"/"+fileName); result.setMessage("ok"); }else{ result=new PictureResult(); result.setError(1); result.setUrl("url"); result.setMessage("error"); } return result; }創建 ItemImageUploadController類
package com.bjsxt.ego.manager.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.bjsxt.ego.beans.PictureResult; import com.bjsxt.ego.manager.service.ManagerItemService; @Controller public class ItemImageController { //注入service @Autowired private ManagerItemService managerItemService; /** * 處理圖片上傳請求 * ***/ @Request Mapping(value="pic/upload",produces=MediaType. APPLICATION_JSON_VAL UE +";charset=UTF-8") @ResponseBody public PictureResult picUpload(MultipartFile uploadFile){ return managerItemService.uploadItemPic(uploadFile); }}配置 springmvc.xml
發布測試
總結
以上是生活随笔為你收集整理的ftp上传图片出现550_FtpClient 实现文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sv队列和动态数组的区别_Go 刷 Le
- 下一篇: easyui 修改单元格内容_初学Exc