5

我想创建一个提供 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);

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

添加注意:如果文件夹不存在,则将动态创建文件夹。

4

1 回答 1

18

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

您可以使用安全的 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 请求:

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

You can use socket_connect(); and socket_write();, I will add more information about those later.

于 2012-04-23T03:55:04.763 回答