最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)圖片上傳至服務(wù)器功能(FTP協(xié)議)

 更新時間:2022年06月23日 16:39:40   作者:MiMsmile  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖片上傳至服務(wù)器功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文為大家分享了java實(shí)現(xiàn)圖片上傳至服務(wù)器功能的具體代碼,供大家參考,具體內(nèi)容如下

本案例實(shí)現(xiàn)圖片上傳功能分為兩個步驟,分別為

(1)APP用base64加密將圖片內(nèi)容上傳至服務(wù)器(http協(xié)議),在臨時目錄中先存儲好圖片;
(2)將服務(wù)器臨時存儲的圖片用FTP協(xié)議上傳至另一臺專門用做存儲圖片的服務(wù)器;

/**
 * ftp 文件操作服務(wù)實(shí)現(xiàn)類
 * 
 */
@Service
public class FtpFileServiceImpl implements IFtpFileService {

  /**ftp 服務(wù)器*/
  @Value("${PTFSERVER}")
  private String server;

  /**Ftp 用戶名*/
  @Value("${PTFUSERNAME}")
  private String uname;

  /**ftp 密碼*/
  @Value("${PTFPWD}")
  private String pwd;

  /**本地字符集編碼*/
  private static final String LOCAL_CHARSET = "GBK";

  /**ftp 服務(wù)器字符集編碼*/
  private static final String SERVER_CHARSET = "ISO-8859-1";
  /**
   * ftp 文件上傳
   */
  @Override
  public void ftpUpload(File srcFile, String fileName, String foldName) {
    FTPClient ftpClient = new FTPClient();
    FileInputStream fis = null;
    String charset = LOCAL_CHARSET;
    try {

      ftpClient.connect(server);
      ftpClient.login(uname, pwd);

      fis = new FileInputStream(srcFile);
      // 設(shè)置上傳目錄
      ftpClient.changeWorkingDirectory(foldName);
      ftpClient.setBufferSize(1024);
      ftpClient.enterLocalPassiveMode();
      if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {
        // 開啟服務(wù)器對UTF-8的支持,如果服務(wù)器支持就用UTF-8編碼,否則就使用本地編碼(GBK).
        charset = "UTF-8";
      }
      ftpClient.setControlEncoding(charset);
      fileName = new String(fileName.getBytes(charset),SERVER_CHARSET);
      // 設(shè)置文件類型(二進(jìn)制)
      ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
      ftpClient.storeFile(fileName, fis);
    } catch (IOException e) {
      throw new EhospitalServiceException(ResponseCode.RESPONSE_COMMON_ERROR_CODE, "FTP客戶端出錯!", e);
    } finally {
      try {
        ftpClient.disconnect();
      } catch (IOException e) {
        throw new EhospitalServiceException(ResponseCode.RESPONSE_COMMON_ERROR_CODE, "關(guān)閉FTP連接發(fā)生異常!", e);
      }
    }
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Java的Graphics類進(jìn)行繪圖的方法詳解

    使用Java的Graphics類進(jìn)行繪圖的方法詳解

    這篇文章主要介紹了使用Java的Graphics類進(jìn)行繪圖的方法,是Java的GUI編程的基礎(chǔ),需要的朋友可以參考下
    2015-10-10
  • MyBatis動態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽的使用

    MyBatis動態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽的使用

    MyBatis中動態(tài)語句choose-when-otherwise 類似于Java中的switch-case-default語句,本文就來介紹一下MyBatis動態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽的使用,感興趣的可以了解一下
    2023-09-09
  • SpringMVC核心技術(shù)

    SpringMVC核心技術(shù)

    這篇文章主要介紹了SpringMVC入門實(shí)例,在springmvc入門教程里算是比較不錯的,結(jié)構(gòu)也比較完整,需要的朋友可以參考。希望可以幫助到你
    2021-07-07
  • 最簡單的java生成word文檔方法

    最簡單的java生成word文檔方法

    這篇文章主要介紹了java生成word文檔最簡單的方法,首先說明,使用該方法時,盡量不要使用wps新建word文檔,經(jīng)測試,手機(jī)不能兼容,出現(xiàn)很多格式問題,office則手機(jī)可以很好的兼容,所以,本文以office做教程
    2021-08-08
  • Spring Data JPA踩坑記錄(@id @GeneratedValue)

    Spring Data JPA踩坑記錄(@id @GeneratedValue)

    這篇文章主要介紹了Spring Data JPA踩坑記錄(@id @GeneratedValue),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java泛型繼承原理與用法詳解

    Java泛型繼承原理與用法詳解

    這篇文章主要介紹了Java泛型繼承原理與用法,結(jié)合實(shí)例形式分析了java泛型繼承的相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Spring @Configuration和@Component的區(qū)別

    Spring @Configuration和@Component的區(qū)別

    今天小編就為大家分享一篇關(guān)于Spring @Configuration和@Component的區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java編程中的equals方法使用全解

    Java編程中的equals方法使用全解

    這篇文章主要介紹了Java編程中的equals方法使用全解,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • springboot @ConfigurationProperties和@PropertySource的區(qū)別

    springboot @ConfigurationProperties和@PropertySource的區(qū)別

    這篇文章主要介紹了springboot @ConfigurationProperties和@PropertySource的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 深入了解Java中循環(huán)結(jié)構(gòu)的使用

    深入了解Java中循環(huán)結(jié)構(gòu)的使用

    Java中有三種主要的循環(huán)結(jié)構(gòu):while 循環(huán)、do…while 循環(huán)和for 循環(huán)。本文將來和大家一起講講Java中這三個循環(huán)的使用,需要的可以參考一下
    2022-08-08

最新評論

衡阳县| 永新县| 凭祥市| 南通市| 十堰市| 邻水| 同心县| 同心县| 黄浦区| 汾西县| 新营市| 桂东县| 乌兰浩特市| 改则县| 婺源县| 当雄县| 泗阳县| 临潭县| 桐乡市| 上虞市| 长子县| 蒙自县| 阿荣旗| 昂仁县| 三江| 邹平县| 弥勒县| 遂溪县| 江北区| 称多县| 黄龙县| 赫章县| 牟定县| 建湖县| 伊金霍洛旗| 绍兴市| 汉源县| 江源县| 青海省| 宁晋县| 若羌县|