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 ブラウザーの動作に似ています。

socket_connect();とを使用できますsocket_write();。これらについては後で詳しく説明します。

于 2012-04-23T03:55:04.763 に答える