欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

(1)APP用base64加密將圖片內(nèi)容上傳至服務(wù)器(http協(xié)議),在臨時(shí)目錄中先存儲(chǔ)好圖片;
(2)將服務(wù)器臨時(shí)存儲(chǔ)的圖片用FTP協(xié)議上傳至另一臺(tái)專門用做存儲(chǔ)圖片的服務(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ù)器對(duì)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客戶端出錯(cuò)!", e);
    } finally {
      try {
        ftpClient.disconnect();
      } catch (IOException e) {
        throw new EhospitalServiceException(ResponseCode.RESPONSE_COMMON_ERROR_CODE, "關(guān)閉FTP連接發(fā)生異常!", e);
      }
    }
  }

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

相關(guān)文章

  • Springboot通過ObjectMapper配置json序列化詳解

    Springboot通過ObjectMapper配置json序列化詳解

    SpringBoot默認(rèn)集成Jackson庫(kù),其中ObjectMapper類是核心,用于Java對(duì)象與JSON字符串的互轉(zhuǎn),提供配置序列化特性、注冊(cè)模塊等方法,在SpringBoot中可以全局配置JSON格式,如日期格式化、將Long轉(zhuǎn)為字符串,還可以配置序列化時(shí)的各種規(guī)則,感興趣的可以了解一下
    2024-10-10
  • RabbitMQ的ACK確認(rèn)機(jī)制保障消費(fèi)端消息的可靠性詳解

    RabbitMQ的ACK確認(rèn)機(jī)制保障消費(fèi)端消息的可靠性詳解

    這篇文章主要介紹了RabbitMQ的ACK確認(rèn)機(jī)制保障消費(fèi)端消息的可靠性詳解,簡(jiǎn)單來說,就是你必須關(guān)閉 RabbitMQ 的自動(dòng)ack ,可以通過一個(gè) api 來調(diào)用就行,然后每次你自己代碼里確保處理完的時(shí)候,再在程序里 ack 一把,需要的朋友可以參考下
    2023-12-12
  • AsyncHttpClient的默認(rèn)配置源碼流程解讀

    AsyncHttpClient的默認(rèn)配置源碼流程解讀

    這篇文章主要為大家介紹了AsyncHttpClient的默認(rèn)配置源碼流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Spring創(chuàng)建Bean的生命周期詳析

    Spring創(chuàng)建Bean的生命周期詳析

    這篇文章主要介紹了Spring創(chuàng)建Bean的生命周期詳析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Spring Boot的listener(監(jiān)聽器)簡(jiǎn)單使用實(shí)例詳解

    Spring Boot的listener(監(jiān)聽器)簡(jiǎn)單使用實(shí)例詳解

    監(jiān)聽器(Listener)的注冊(cè)方法和 Servlet 一樣,有兩種方式:代碼注冊(cè)或者注解注冊(cè)。接下來通過本文給大家介紹Spring Boot的listener(監(jiān)聽器)簡(jiǎn)單使用,需要的朋友可以參考下
    2017-04-04
  • Java中JUC?的?Exchange?交換器詳情

    Java中JUC?的?Exchange?交換器詳情

    這篇文章主要介紹了Java中JUC?的?Exchange?交換器詳情,文章基于Java的相關(guān)資料展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-05-05
  • JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法

    JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法

    這篇文章主要介紹了JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法,涉及java數(shù)值轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • springboot集成mqtt的實(shí)踐開發(fā)

    springboot集成mqtt的實(shí)踐開發(fā)

    本篇文章主要介紹了springboot集成mqtt的實(shí)踐開發(fā),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Spring?Boot中自動(dòng)執(zhí)行sql腳本的方法實(shí)例

    Spring?Boot中自動(dòng)執(zhí)行sql腳本的方法實(shí)例

    在SpringBoot的架構(gòu)中,DataSourceInitializer類可以在項(xiàng)目啟動(dòng)后初始化數(shù)據(jù),我們可以通過自動(dòng)執(zhí)行自定義sql腳本初始化數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Spring?Boot中自動(dòng)執(zhí)行sql腳本的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能

    springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能

    這篇文章主要為大家詳細(xì)介紹了springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評(píng)論