【问题标题】:How to upload a file to a folder location on server2, Having php script on server1如何将文件上传到 server2 上的文件夹位置,在 server1 上有 php 脚本
【发布时间】:2014-03-24 11:58:19
【问题描述】:

我有一个启用 php 的 server1。我有一个用于文件上传的 php 代码。但我需要将文件保存在 server2 上。

我可以通过 FTP 访问 server2。

在搜索时我发现了这段代码,

    <?php
$ftp_server = "199.53.23.1";
$ftp_user_name = "xxxx";
$ftp_user_pass = "**********";
$remote_dir = "http://server2/Images/";

// 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);

//default values
$file_url = "";

if($login_result) {
//set passive mode enabled
ftp_pasv($conn_id, true);

$file = $_FILES["uploadedfile"]["tmp_name"];
$remote_file = $_FILES["uploadedfile"]["name"];

$ret = ftp_nb_put($conn_id, $remote_file, $file, FTP_BINARY, FTP_AUTORESUME);
while(FTP_MOREDATA == $ret) {
$ret = ftp_nb_continue($conn_id);
}

if($ret == FTP_FINISHED) {
echo "File '" . $remote_file . "' uploaded successfully.";
} else {
echo "Failed uploading file '" . $remote_file . "'.";
}
} else {
echo "Cannot connect to FTP server at " . $ftp_server;
}
?>

它说无法连接到服务器。

有人对这种类型的要求有想法吗?

请帮忙。

更新

Server2 不支持 PHP

【问题讨论】:

  • 首先,转到第一个服务器并尝试在命令行上通过 FTP 连接服务器 2。可能没有ftp连接

标签: php curl file-upload ftp image-uploading


【解决方案1】:

这是你的电话

$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

删除@

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

对于 SFTP

$conn_id = ssh2_connect($ftp_server, 22);
ssh2_auth_password($conn_id, $ftp_user_name, $ftp_user_pass);

$sftp = ssh2_sftp($conn_id);

使用示例:$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');

*发送文件

ssh2_scp_send($conn_id, '/local/filename', '/remote/filename', 0644);

*获取文件

ssh2_scp_recv($conn_id, '/remote/filename', '/local/filename');

*创建一个新文件夹

ssh2_sftp_mkdir($sftp, '/home/username/newdir');

*重命名文件夹

ssh2_sftp_rename($sftp, '/home/username/newdir', '/home/username/newnamedir');

*删除新文件夹

ssh2_sftp_rmdir($sftp, '/home/username/newnamedir');

*创建符号链接

ssh2_sftp_symlink($sftp, '/home/username/myfile', '/var/www/myfile');

*删除文件

ssh2_sftp_unlink($sftp, '/home/username/myfile');

【讨论】:

  • 谢谢,但同样的问题。它说“无法连接到 IP 地址的 FTP 服务器”
  • 您是否在第二台 PC 上创建了 ftp 服务器?你也必须拥有它! ftp_connect(主机、端口、超时);端口通常是 21
  • 第二台电脑?对不起,我听不懂?
  • 对不起,我的意思是服务器 2!
  • 是的,我有 SFTP 和端口 22 的 ftp 设置
猜你喜欢
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多