国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > 管理維護 > 正文

圖片服務器要如何搭建

2024-09-10 14:19:16
字體:
來源:轉載
供稿:網友
  一、前言
 
  分布式集群的項目,正常一般的工程是把圖片放在web項目的自身服務器的工程中,但在集群環境下,會出現找不到圖片的情況。
 
  代碼參考:https://github.com/zyjcxc/taotao.git
 
  比如:
 
  解決辦法:
 
  linux做磁盤的映射,說能解決,但服務器多了也不好弄,所以可以再搭建一個圖片服務器
 
  圖片服務器兩個服務:
 
  http:可以使用nginx做靜態資源服務器。也可以使用apache。推薦使用nginx,效率更高。也可以結合我之前的mongo文件服務器,將文件url存到Mongo中。
 
  ftp服務:使用linux做服務器,在linux中有個ftp組件vsftpd。
 
  二、步驟
 
  1、服務器需求
 
  Linux:CentOS6.4
 
  Nginx:1.8.0
 
  Vsftpd:需要在線安裝。
 
  2、Nginx安裝
 
  參考Nginx安裝指南.
 
  3、Vsftpd安裝
 
  參考Vsftpd安裝指南.
 
  4、圖片服務器的測試
 
  安裝好環境后,可以用ftp客戶端(FileZilla)測試是否能上傳下載文件。
 
  ftp上傳圖片后,用瀏覽器直接訪問圖片路徑,測試是否有圖片顯示。
 
  5、java代碼實現上傳
 
  使用apache的FTPClient工具訪問ftp服務器。需要在pom文件中添加依賴:
 
  publicclassFTPClientTest{
 
  @Test
 
  publicvoidtestFtp()throwsException{
 
  //1、連接ftp服務器
 
  FTPClientftpClient=newFTPClient();
 
  ftpClient.connect("192.168.1.133",21);
 
  //2、登錄ftp服務器
 
  ftpClient.login("ftpuser","ftpuser");
 
  //3、讀取本地文件
 
  FileInputStreaminputStream=newFileInputStream(newFile("D://Documents//Pictures//images//2010062119283578.jpg"));
 
  //4、上傳文件
 
  //1)指定上傳目錄
 
  ftpClient.changeWorkingDirectory("/home/ftpuser/www/images");
 
  //2)指定文件類型
 
  ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
 
  //第一個參數:文件在遠程服務器的名稱
 
  //第二個參數:文件流
 
  ftpClient.storeFile("hello.jpg",inputStream);
 
  //5、退出登錄
 
  ftpClient.logout();
 
  }
 
  }
 
  后續可以根據需求,將其封裝工具類,寫service,contorller即可,截取部分代碼
 
  publicMapuploadPicture(MultipartFileuploadFile){
 
  Map<String,Object>map=newHashMap<>(2);
 
  try{
 
  StringoldName=uploadFile.getOriginalFilename();
 
  StringnewName=IDUtils.genImageName();
 
  newName+=oldName.substring(oldName.lastIndexOf("."));
 
  StringimagePath=newDateTime
 
  ().toString("yyyy/MM/dd");
 
  booleanresult=FtpUtil.uploadFile(FTP_HOST,FTP_PORT,FTP_USERNAME,FTP_PASSWORD,FTP_BASE_PATH,imagePath,newName,uploadFile.getInputStream());
 
  if(!result){
 
  map.put("error",1);
 
  map.put("message","文件上傳失敗");
 
  returnmap;
 
  }
 
  map.put("error",0);
 
  map.put("url",IMAGE_BASE_URL+"/"+imagePath+"/"+newName);
 
  }catch(IOExceptione){
 
  map.put("error",1);
 
  map.put("message","文件上傳異常");
 
  e.printStackTrace();
 
  returnmap;
 
  }
 
  returnmap;
 
  }
 
  注意:
 
  springmvc框架,在配置文件中要加入文件上傳解析器
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雷波县| 高阳县| 奇台县| 甘孜县| 攀枝花市| 博野县| 龙川县| 广宗县| 新余市| 毕节市| 澄城县| 宁蒗| 宾川县| 河间市| 南华县| 龙州县| 全州县| 徐水县| 环江| 双桥区| 岳阳市| 多伦县| 荣昌县| 昆山市| 广南县| 颍上县| 宁都县| 进贤县| 广河县| 中牟县| 灌阳县| 汤阴县| 新蔡县| 潮安县| 吴川市| 军事| 嫩江县| 璧山县| 蒲江县| 普宁市| 西峡县|