南宁西乡塘区快餐服务
<dl id="bd5nl"></dl>

<menuitem id="bd5nl"></menuitem>

<nobr id="bd5nl"></nobr>

當前位置 主頁 > 站長資源大全 > IIS7 FTP大全 >

    解決ftp上傳文件失敗的代碼示例

    欄目:IIS7 FTP大全 時間:2019-07-17 09:22

        下述代碼主要解決了因為中文標題的出現,而導致上傳文件出錯的問題!
           代碼示例:
      /**
      * 上傳文件
      *
      * @param P_Files
      */
      public static void uploadFile(File P_File)
      {
      if (P_File.exists())
      {
      String strFtpIp = getFtpIp()
      String strUserName = getFtpUserName()
      String strPassword = getFtpPassword()
      FTPClient ftpClient = new FTPClient()
      FileInputStream fis = null
      try
      {
      // 連接服務
      ftpClient.connect(strFtpIp)
      ftpClient.login(strUserName, strPassword)
      // 獲取臨時文件
      // 文件路徑加上temp的目的是為了每次上傳的附件不被覆蓋,使用filename的目的是為了和數據庫保存的文件名是一樣的,這樣能夠根據數據庫中的文件名稱獲取到附件
      String preFileName = P_File.getName()
      if (preFileName != null && preFileName.length() > 0)
      {
      fis = new FileInputStream(P_File)
      // 表示獲取的文件流是大于0字節以上,
      if (fis.available() > 0)
      {
      ftpClient.setBufferSize(1024);// 設置1M緩沖,
      ftpClient.setControlEncoding("GBK");// 設置編碼為GBK
      // 設置文件類型(二進制)
      ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE)
      if (ftpClient.storeFile(new String(preFileName.getBytes("GBK"), "iso-8859-1"), fis))
      {
      System.out.println(preFileName + "通過ftp上傳成功")
      }
      else
      {
      System.out.println(preFileName + "通過ftp上傳失敗")
      }
      }
      else
      {
      System.out.println("fis is null,filepath=" + P_File.getPath())
      
      }
      }
      catch (IOException e)
      {
      e.printStackTrace();
      throw new RuntimeException("FTP客戶端出錯!", e)
      }
      finally
      {
      IOUtils.closeQuietly(fis)
      try
      {
      ftpClient.disconnect()
      }
      catch (IOException e)
      {
      e.printStackTrace();
      throw new RuntimeException("關閉FTP連接發生異常!", e)
      }
      }
      }
     
南宁西乡塘区快餐服务