php 从不同的服务器下载文件
php download file from different server
我的应用程序在服务器 A 上,数据库在另一台服务器服务器 B 上。
使用 mysql outfile 进入服务器 B 的 /tmp 目录。
我想在服务器 A
上使用 php 代码下载此文件
<?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;
?>
with mysql select outfile 文件保存在服务器 B 中,但无法从运行 php 代码的服务器 A 下载
问候
您也可以尝试 "fputcsv" 功能以 CSV 格式下载数据。
您可以像在应用程序中一样连接数据库
$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;
您也可以使用SCP命令将文件从serverA移动到ServerB
scp destination_server_username@IP 地址:/path/filename.zip usource_server_username@IP:/path/file.zip
我的应用程序在服务器 A 上,数据库在另一台服务器服务器 B 上。 使用 mysql outfile 进入服务器 B 的 /tmp 目录。 我想在服务器 A
上使用 php 代码下载此文件<?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;
?>
with mysql select outfile 文件保存在服务器 B 中,但无法从运行 php 代码的服务器 A 下载 问候
您也可以尝试 "fputcsv" 功能以 CSV 格式下载数据。 您可以像在应用程序中一样连接数据库
$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;
您也可以使用SCP命令将文件从serverA移动到ServerB
scp destination_server_username@IP 地址:/path/filename.zip usource_server_username@IP:/path/file.zip