PHP:使用ftp_put导致错误,如何查找原因?

时间:2016-05-19 09:35:11

标签: php ftp put

我正在使用PHP创建导出文件。创建文件后,我希望将其移动到另一个ftp位置。文件创建顺利,ftp连接似乎也顺利,但文件的传输/上传导致错误。

我已经使用Filezilla检查了凭据和路径,并且相信FTP路径很好。

此代码出了什么问题,或者如何从代码中获取更多反馈以找出导致错误的原因?

这是代码的一部分。文件创建完成后我会把它拿起来(所以这一切都发生在同一个文件中):

 fclose($myfile);

 $conn->close();

//Move file to ftp-server
$ftp_server = "ftp.domain.com";
$ftp_username = "username"; 
$ftp_userpass = "password"; 
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
$remote_location = "/public_html/testdir";
$file = "export.csv";

// upload file
if (ftp_put($ftp_conn, $remote_location, $file, FTP_ASCII))
  {
  echo "Successfully uploaded $file.";
  }
else
  {
  echo "Error uploading $file.";
  }

// close connection
ftp_close($ftp_conn);

所以我得到的错误是:"上传export.csv时出错。"该文件与运行代码的php文件存在于同一目录中。

请温柔......

1 个答案:

答案 0 :(得分:1)

据我所知,ftp_put接受第二个参数,在你的例子中是$ remote_location,作为文件名而不是目录/文件夹名。所以这个变量

$remote_location = "/public_html/testdir";
假设“/ public_html / testdir”是目录,

无效。

因此你应该把它改成指向一个文件:“/ public_html/testdir/example.csv”

此致