如何将图像上传到另一台服务器?

时间:2012-04-23 03:46:16

标签: php image-uploading

我想创建一个提供html内容的应用服务器,其中包含指向其他域上其他服务器所服务的静态图像的链接。用户通过应用程序服务器上传图像。

这是我将JPEG文件上传到应用服务器的方法:

if(!file_exists("folder_name")) mkdir("folder_name", 0770);
$temp_file = $_FILES['image']['tmp_name'];
$im = imagecreatefromjpeg($temp_file);
$destination = "folder_name/file_name.jpg";
imagejpeg($im, $destination);
imagedestroy($im);

如果我要将文件上传到另一台服务器,如何更改代码?

添加注释:如果文件夹不存在,则即时创建文件夹。

1 个答案:

答案 0 :(得分:17)

主要取决于你可以使用什么。

您可以使用安全的SFTP执行此操作:

$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

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

PHP手册:function.ssh2-scp-send.php

或不安全的FTP:

$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect("ftp.example.com");

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

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

// close the connection
ftp_close($conn_id);

PHP手册:function.ftp-put.php

或者您可以使用PHP发送HTTP请求:

这更像是另一台服务器看到的真实网络浏览器行为:

您可以使用socket_connect();socket_write();,我稍后会添加更多相关信息。