【问题标题】:FTP file upload using php使用php上传FTP文件
【发布时间】:2013-04-23 22:46:54
【问题描述】:

我需要将文件从本地计算机自动上传到远程服务器。我在这里找到了以下代码:

<?php
require_once('ftp.php');

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
    echo "successfully uploaded $file\n";
    exit;
} else {
    echo "There was a problem while uploading $file\n";
    exit;
}
// close the connection
ftp_close($conn_id);
?>

ftp.php 是我的带有 ftp 身份验证信息的文件。连接有效,但出现以下错误:

There was a problem while uploading C:/xampp/htdocs/testbcos/accounting/checkslastmonth.csv 

编辑:我不确定这是否会有所不同,但这是我的 $remote_file 和我的 $file:

$file = "C:/xampp/htdocs/testbcos/accounting/checkslastmonth.csv";//tobe uploaded
$remote_file = "/home/bookcell/public_html/testbcos/accounting/checkslastmonth3.csv";

我在这里做错了什么?此外,如果文件位于本地服务器上的映射驱动器上,是否可以执行此操作? 谢谢。

【问题讨论】:

  • 检查远程目录是否有上传文件的权限?
  • 远程目录的权限为777用于测试目的,我刷新目录并再次尝试同样的错误,所以我认为不是问题
  • 剩下的一切都以正确的方式进行。很可能用户没有访问远程服务器的权限..
  • 确保在 PHP 中启用警告。 ftp_put 肯定会发出警告,并提供有关错误的更多详细信息。
  • 尝试用ftp_pasv($conn_id, true);设置被动模式

标签: php ftp


【解决方案1】:

第一件事:尝试设置被动模式。如果您坐在防火墙后面,则需要它。 (大概是什么情况)

ftp_pasv($conn_id, true); // after ftp_login

其次,你要先换到dir:

ftp_chdir($conn_id, '/home/bookcell/public_html/testbcos/accounting/');
ftp_put($conn_id, 'checkslastmonth3.csv', $file, FTP_ASCII);

如果您想知道到底发生了什么,请尝试使用error_get_last()$php_errormsg

【讨论】:

  • 我查看了服务器错误日志,我得到了这个:[STDERR] PHP 警告:ftp_put(C:/xampp/htdocs/testbcos/accounting/checkslastmonth.csv) [function.ftp-put]:无法打开流:/chroot/home/bookcell/bookcellaronline.com/html/testbcos/accounting/ftpUpload.php 中没有这样的文件或目录第 19 行我想我注定不会让它工作
  • 尝试使用$file = realpath(__DIR__).DIRECTORY_SEPARATOR.'checkslastmonth.csv'; 获取本地文件,否则错误很明显:本地文件是否真的存在于该位置?
  • @Jim 所以看起来您正在服务器上运行脚本并想从本地计算机“上传”文件?会不会是你需要一个 html 上传脚本而不是一个 ftp 上传?
  • 结果如下:/checkslastmonth.csv
  • 意思是我需要使用表格?每次使用特定程序时,我都会上传相同的文件,刚刚更新。这就是我使用 ftp 脚本的原因。
猜你喜欢
  • 2016-03-31
  • 2011-05-19
  • 2012-05-11
  • 1970-01-01
  • 2014-09-11
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多