1. 程式人生 > >java從FTP下載檔案功能

java從FTP下載檔案功能

java下載檔案功能,匯出的時候會下載到瀏覽器預設下載資料夾裡,360瀏覽器會彈出一個儲存檔案的彈出框
//下載匯出報表
//JS
function downloadExport(filename){
window.location.href=”/order-center/ui/spm/downloadExport.do?filename=”+filename;
}

/**
 * 查詢匯出報表: http://localhost:8080/order-center/ui/spm/downloadExport.do
 * key module
 */
@RequestMapping(value = "downloadExport.do", method = RequestMethod.GET)
public void downloadExport(
        @RequestParam(value = "filename", required = false) String filename,
        HttpServletResponse response) {
    File pf = new File(SpmRest.class.getResource("/").getFile());
    FileInputStream fis=null;
    OutputStream ostream=null;
    try {
//          if (!getUser().getShopid().equals(EGlobal.TOP_SHOP_ID)) {
////                shopId = getUser().getShopid();
//              shopId = spmService.getUserShopList(getUser(),shopId);
//          }
        String dirPath = pf.getParentFile().getParentFile().getAbsolutePath()+ File.separator + "exportfile";
        File dirFile = new File(dirPath);
        if (!dirFile.exists())
            dirFile.mkdir();


        File file = new File(dirFile.getAbsolutePath() + File.separator
                + filename);
        if (!file.exists()) {//查詢伺服器有沒有檔案,沒有則衝FTP下載
            boolean downloadExport = spmService.downloadExport(dirPath, filename);
            if(!downloadExport){
                return ;
            }
        }
        fis = new FileInputStream(file);
        ostream = response.getOutputStream();
        response.setContentType("application/ms-excel");
        response.setHeader("Content-disposition", "attachment; filename="+ filename);
        byte[] b = new byte[1024];
        int len = fis.read(b);
        while (len > 0) {
            ostream.write(b, 0, len);
            len = fis.read(b);
        }   
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            fis.close();
            ostream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }   
    }
}
/** 
 *  從ftp下載報表
 * @throws SftpException 
 */
public boolean downloadExport(String dirPath, String filename) {
    boolean flag = false;
    ChannelSftp sftp = null;
    SFTPUtilTools sftptool = null;//連線FTP,自定義類,網上很多示例
    try{
        sftptool =  new SFTPUtilTools();
        sftp = sftptool.connectChannel(FGlobal.EXPORT_HOSTNAME, FGlobal.EXPORT_USERNAME, FGlobal.EXPORT_PASSWORD);
        if (sftp == null) {
            logger.warn("無效連結或連結失敗");
            return flag;
        }
        logger.info("**************開始下載匯出報表EXPORT**************");
        sftp.cd(FGlobal.EXPORT_REC);//進入ftp下載資料夾
        File file = new File(dirPath+File.separator+filename);//匯出到伺服器檔案
        sftp.get(filename,new FileOutputStream(file));//下載檔案
        System.out.println("檔案更新成功:" + file.getName());
        flag = true;
        logger.info("**************下載檔案成功**************");
    }catch(Exception e){
        logger.error(e);
    }finally{
        sftptool.closeChannel(sftp);
    }
    return flag;
}

相關推薦

javaFTP下載檔案功能

java下載檔案功能,匯出的時候會下載到瀏覽器預設下載資料夾裡,360瀏覽器會彈出一個儲存檔案的彈出框 //下載匯出報表 //JS function downloadExport(filename){ window.location.href=”

Java伺服器下載檔案到本地

我的需求是從伺服器端的某磁碟中獲取amr檔案,並下載。 首先傳遞的引數strUrl為物理路徑,是絕對路徑。 //獲取檔名,此處看個人如何設計的 String filename = strUrl.substring(strUrl.lastIndexOf("/")+1); filena

pythonFTP下載檔案

#!/usr/bin/python # -*- coding: utf-8 -*- """ FTP常用操作 """ from ftplib import FTP import os class FTP_OP(object): def __init__(self, host, us

java 伺服器下載檔案並儲存到本地

最近在做專案,做到檔案的下載,假設公司有檔案伺服器(像ftp或者其他),像開發人員怎麼進行從檔案伺服器上下載檔案到本地指定目錄下!又或者需要從網上下載資源到本地指定的目錄下,這時候最需要關心的幾個問題就是: (1)客戶端發起一個url請求,獲取連線物件。      

Java伺服器下載檔案到本地(親測有效)

我用的是swagger 前後臺分離的專案 我的需求是從伺服器端的某磁碟中獲取按模板生成的word檔案,並下載。 思路:  按模板在伺服器上生成一個word文件  通過流的方式讀取word響應給瀏覽器  最後刪除在伺服器生成的word文件 public void word

java伺服器下載檔案

static public String downloadPrintFile(String filename, String dir) throws IOException {// 獲取檔案存放路徑File pf = new File(PrintTask.class.get

Java實現FTP伺服器檔案的上傳和下載

一、前言: 最近剛好需要實現這個功能:實現ftp的上傳和下載。在網上找了下資料,總結了下。直接上程式碼: 二、程式碼示例: 首先使用到的maven依賴: <dependency>     <groupId>commons-ne

java ftp下載檔案

public void readFire(FireFtpConfig ftpConfig) { FTPClient ftpClient = new FTPClient(); Date now = new Date(); try {

Java Web實現使用瀏覽器伺服器下載檔案(後臺)

Java Web實現 使用瀏覽器從伺服器下載檔案。 下面實現兩種情況的下載,需求如下:需求(一):1、使用者在頁面填寫表單。 2、填寫完成後,選擇下載,將表單內容發往後臺。 3、後臺根據內容生產一個檔案,傳送給前端。 4、前端成功下載檔案到本地。 此需求簡單來說就是,使用者在

java實現網上下載檔案到本地

基本實現步驟: 1.建立http連線,獲取物件 connection 2.輸入流讀檔案 3.新建儲存路徑 4.輸出流寫入資料,並關閉流 public class test { public static void main(String[] args) {getIntern

java ftp伺服器上 讀取檔案內容

 public class FtpUtil {       FtpClient ftpClient;       /**      * 連線FTP服務      * @param url //IP地址      * @param port//埠號      * @par

FTP下載圖片返回檔案流在頁面顯示圖片

.HTML <div id="showPicture" style="width:100%;height:800px;line-height:100px;overflow:auto;overflow-x:hidden; text-align: center;">

java生成xls下載檔案

介於匯入資料操作,有時不需要做事務回滾,但是又需要記錄錯誤的資料和err時,可以用xls返回,且可以直接通過outputStream來完成而不需要模板檔案 載入 jxl.jar 包 Workbook book = Workbook.getWorkbook(is); 這個用來讀檔

java後臺Controller下載檔案方法

   /**      * 匯出      * @param request      * @param response      */  &n

使用“rz -be”命令上傳檔案至伺服器;使用“sz 檔名”伺服器下載檔案到本地

我們知道在與linux 做檔案交換的時候,經常會使用到windows 檔案上傳到linux 或者linux 檔案下載到windows之類的情況,其中大家使用比較常用的就是 Xftp,sftp,FileZilla等,那麼今天就介紹另外一種方式上傳與下載檔案rz/sz 測試環境: CentOs

簡單實現瀏覽器下載檔案

最容易出錯到點 JDBC連線資料庫卻忘記導包:mysql-connector-java-5.1.7-bin.jar 使用Servlet卻忘記導tomcat的包:servlet-api.jar,這個包在tomcat/lib中找到 自己手寫Servlet卻忘記到web.x

java+VUE,下載檔案,前端接受的問題。

downloadExcel(param).then(res => { let link = document.createElement(‘a’); link.href = window.URL.createObjectURL(res); var filename = “調查問卷.xl

怎麼用Java網上下載一個視訊下來

用Java的IO流從網上下載一個視訊 原理:就是用URL物件與目標地址建立一個連結,用IO流的方式從這個連結上把視訊的二進位制資料讀取下載然後再寫入本地檔案。 程式碼思路 先建立一個連結物件,獲取到網頁的連結; 從連結物件獲取到輸入流,讀取資料; 建立一個輸出流

JAVA URL copyURLToFile下載檔案中文名處理

做了一個從URL下載檔案的功能 剛開始用沒問題 後來發現中文名有問題 原先程式碼: String url="http://xxxxcom/userfiles/file/20181010//5596d00

Android開發丶一步步教你實現okhttp帶進度的列表下載檔案功能

大家好,我又回來了! 標題好像又起的不知所云,但是貌似也想不起更好的標題,話不多少,先來張效果圖 根據上圖就很明顯標題的含義了,每個列表標籤都有一個下載的按鈕,點選以下載對應的檔案,如果已下載則顯示“已下載”,反之顯示“點選下載”。 首先我們使用okhttp框架下載