php ftp_put 不创建文件

标签 php ftp

我正在尝试将图像文件从我的本地 PC 上传到远程服务器。该图像来自一个简单的 html 输入 (type=file),文件数组包含这些:

Array ( [name] => image42.jpg [type] => image/jpeg [tmp_name] => C:\wamp\tmp\phpBB52.tmp [error] => 0 [size] => 6051 ) 

如您所见,我的本地 PC 使用的是 Windows。尝试上传图像文件的代码如下:

$conn_id = ftp_connect($ftp_server, $ftp_port);

$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);

if(!ftp_chdir($conn_id, $folder_path))
{
    $create_folder = ftp_mkdir($conn_id, $folder_path);
    ftp_chmod($conn_id, 0777, $folder_path);
}

这完美地连接到服务器,甚至创建一个文件夹(如果它不存在)。然后当我们到达上传部分时,

ftp_pasv($conn_id, true);

// upload a file
$upload = ftp_put($conn_id, $new_dir, $file_dir, FTP_BINARY);

变量 $upload 得到 false

$file_dir 包含 C:\wamp\tmp\phpBB52.tmp(即文件的 tmp_name)。

$new_dir 包含带有图像路径的远程目录:img.example.com/data/images/blabla.jpg

另外,返回的错误是:

Warning: ftp_put() [<a href='function.ftp-put'>function.ftp-put</a>]: Could not create file. in C:\wamp\www\example\example.php on line 95

我在 Google 和 StackOverflow 上都找不到任何有用的东西。可能是什么原因?

最佳答案

这对我有用。可能是服务器的根目录与 FTP 的根目录不同。

尝试使用另一个程序登录您的 FTP 帐户并检查根目录。比如我的FTP根目录是/public_html/,但是服务器是/home/cms/public_html/。因此,如果我的文件的远程目标设置为 /home/cms/public_html/images/82.jpg,只需将其更改为 /public_html/images/82.jpg

关于php ftp_put 不创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11518419/

相关文章:

php - 如何发布 Guzzle 6 异步数据

wordpress - 如何通过 ssh 访问 WordPress 站点

在 IPhone/ATT 上进行网络共享时出现 Python FTP SSL 错误

php - 文档根;登录变量

php - jquery twitter 插件,对 seo 友好

macos - Windows Azure 和 FileZilla FTP

java - Camel FTP 文件自动化

shell - 如何从SVN导出文件到远程FTP服务器

php - 使用 mailchimp 发送新闻信件

PHP - WHERE Join 中的 MYSQL 未知列