php - 在 PHP 中创建文件并将其上传到 FTP 服务器而不在本地保存

标签 php ftp

我在连接我正在工作的两个不同进程时遇到问题。我的任务是从数据库中提取数据,根据数据创建文件,然后将其上传到 FTP 服务器。

到目前为止,我已经使用此代码创建并下载了文件,$out是包含完整文本文件的字符串:

if ($output == 'file')
{
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Length: ".strlen($out));
    header("Content-type: application/txt");
    header("Content-Disposition: attachment; filename=".$file_name);
    echo($out);
}

这适用于我只想在浏览器中运行脚本并下载文件,但我希望将其发送到 FTP 服务器的情况。

我知道我与 FTP 服务器的连接工作正常,我正确地导航到正确的目录,我已经从磁盘中获取文件并使用 ftp_put() 将它们放在 FTP 上, 但我想服用 $out并用 $filename 将其直接写入文件作为其在 FTP 服务器上的名称。我可能误读了一些东西,但是当我尝试时 ftp_putftp_fput ,他们似乎想要文件位置,而不是文件流。我可以考虑其他功能吗?

最佳答案

我在这里回答而不是评论,因为评论会忽略代码格式。

你可以试试:


$fp = fopen('php://temp', 'r+');
fwrite($fp, $out);
rewind($fp);       
ftp_fput($ftp_conn, $remote_file_name, $fp, FTP_ASCII);

这将创建一个临时流,而不会将其实际写入磁盘。我不知道还有什么办法

关于php - 在 PHP 中创建文件并将其上传到 FTP 服务器而不在本地保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676368/

相关文章:

PHP:有些人通过在主体中专门抛出异常来抽象方法 "fake"的原因是什么?

php - 禁止在简单的PHP登录系统中访问文件

php - 从 Laravel 作业调用 Laravel 命令

java - 无法使用 apache Camel FTP 删除位于服务器上的远程文件

netbeans 群发 ftp

php - 新的 Laravel 8 安装 500 服务器错误,没有 Laravel 日志或 Apache 日志

php - 来自 Foreach 循环的堆叠/重叠图像

macos - 如何使用 amazon ec2 实例设置我的 mac ftp 客户端?

java - 尝试解析从 ftp 下载的 xml 文件时出现 XMLStreamException

iphone - iOS:FTP TLS 连接