You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行使用ftp_get命令的PHP文件下载脚本?

问题分析与解决方案

你的核心误解在于:当通过浏览器运行VPS上的PHP脚本时,ftp_get函数是将FTP服务器上的文件下载到VPS服务器的本地文件系统,而不是你的个人电脑。这也是你觉得需要和本地电脑交互的原因——你实际想要的是把文件拉到自己的机器上,而非存到VPS里。

解决方法一:修改脚本让浏览器直接下载文件到本地

如果目标是把FTP上的文件下载到你的个人电脑,不需要让VPS存储这个文件,可以修改脚本,直接将FTP文件内容输出到浏览器,触发本地下载:

<?php
include 'include/helper.php';

// connect to FTP server and login
$ftp_server = $server_address;
$ftp_username = $user;
$ftp_userpass = $pass;

$ftp_conn = ftp_connect($ftp_server) or die ('Could not connect to FTP server');
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

$server_file = 'invenfeed_5264.csv';

// 从FTP获取文件内容并直接输出到浏览器
$file_content = ftp_get($ftp_conn, 'php://output', $server_file, FTP_BINARY);
if ($file_content) {
    // 设置HTTP响应头,触发浏览器下载
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="invenfeed_5264.csv"');
    header('Content-Length: ' . ftp_size($ftp_conn, $server_file));
} else {
    die("Error downloading file from FTP server");
}

// Close the FTP connection
ftp_close($ftp_conn);
?>

当你在浏览器访问这个修改后的脚本时,浏览器会直接将FTP上的文件下载到你的个人电脑,无需经过VPS存储。

解决方法二:在本地运行脚本(PowerShell/ISE)

如果你想在本地用PowerShell执行这个PHP脚本,需要先完成以下步骤:

  • 在你的个人电脑上安装PHP环境,确保php命令能在PowerShell中直接调用(需将PHP路径添加到系统环境变量)
  • 将原脚本和include/helper.php复制到本地电脑的某个文件夹
  • 确保helper.php里的$server_address、$user、$pass变量配置正确
  • 打开PowerShell,切换到脚本所在的文件夹,执行命令:
php .\你的脚本文件名.php

执行后,文件会下载到你当前PowerShell所在的目录下(也就是脚本同级的local.csv)。

原脚本的问题说明

你原来的脚本在浏览器运行时,确实会把FTP文件下载到VPS服务器上的local.csv(脚本所在目录),你可以通过FTP或者VPS的文件管理器查看这个文件是否存在,验证脚本是否执行成功。

内容的提问来源于stack exchange,提问作者LuisM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:12:40