2015-03-13 158 views
2

我的應用程序是在服務器A和數據庫中的其他服務器服務器B. 與MySQL OUTFILE成/服務器B. 的tmp目錄下我想用PHP代碼下載服務​​器APHP下載文件

這個文件
<?php 
    $fullpath = '/tmp/users.csv'; 

    Mysql SELECT ......INTO OUTFILE '$fullpath' 
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '\"' 
    ESCAPED BY '\"' 
    LINES TERMINATED BY '\n' 

    $connection = ssh2_connect('serverb', 22); 
    ssh2_auth_password($connection, 'username', 'password'); 

    if(ssh2_scp_recv($connection, $fullpath, $fullpath)) { 
     echo $filepath.' copied to server!!'; 
    } 
    $filename1 = 'users.csv'; 

    $mm_type="application/csv"; 
    header("Pragma: public"); 
    header("Expires: 0"); 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header("Cache-Control: public"); 
    header("Content-Description: File Transfer"); 
    header('Content-Type: application/csv; charset=UTF-8'); 
    header('Content-Disposition: attachment; filename="'.$filename1.'"'); 
    header("Content-Transfer-Encoding: binary\n"); 
    readfile($fullpath); 
    exit; 
?> 

與MySQL選擇保存在服務器B OUTFILE文件,但無法從服務器A,其中的PHP代碼運行 問候

+0

嘿,語法錯誤!你不能像這樣執行的查詢? – Raptor 2015-03-13 08:29:25

+0

@Raptor;查詢正確執行,我得到ServerB上「/tmp/users.csv」 csv文件。這裏是一個查詢的例子SELECT'First Name','Last Name','User Code' UNION (SELECT fname,lname,ucode FROM csvfields INTO OUTFILE'$ fullpath' FIELDS TERMINATED BY',' ENCLOSED BY' \「」 ESCAPED BY '\」' LINES TERMINATED BY '\ n' ) – Aruti 2015-03-15 09:49:36

回答

1

您也可以嘗試以CSV格式下載數據「fputcsv」功能下載。 您可以與數據庫連接爲你的應用程序做

$filename = 'users.csv'; 
header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename='.$filename.'.csv'); 
ob_clean(); 

$output = fopen('php://output', 'w'); 

fputcsv($output, array('Column1', 'Column2')); 

$exceldata = $this->ModelName->query("SELECT field1, field2 from TableName"); 
// loop over the rows, outputting them 
foreach($exceldata as $exceldataval){ 
fputcsv($output, $exceldataval); 
} 

fclose($output); 
exit; 
+0

謝謝@Amit馬安,這是工作:) – Aruti 2015-03-16 11:16:17

0

您還可以使用SCP命令從serverA的移動文件到ServerB

SCP destination_server_username @ IP地址:/path/filename.zip usource_server_username @IP:/path/file.zip