画像をURLから取得して異なるサーバーにアップロード
2024/01/12
■やりたかった事
・画像があるサーバーはaaaサーバー
・アップロード先はbbbサーバー
・formのアップロードではなくURLから画像取得
■ソース
<?php
/* 一時的にファイルを保存 */
$img = file_get_contents('http://aaa.com/images/hoge.jpg');
$tmp_dir = '/hoge/tmp/';
$tmp_name = 'tmp_' . round(rand(1,10000)) . '.jpg';
$tmp_img = $tmp_dir . $tmp_name;
$fp = fopen($tmp_dir . $tmp_name, 'wb');
fwrite($fp, $img);
fclose($fp);
/* ファイルをアップロード */
require_once 'HTTP/Request.php';
$url = "http://bbb/receive.php";
$req =& new HTTP_Request($url);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$res = $req->addFile('image', $tmp_img);
$req->sendRequest();
$req = $req->getResponseBody();
/* 一時画像の削除 */
if (is_file($tmp_img)) {
unlink($tmp_img);
}
?>
関連記事
-
他サーバーにある画像をPHPで取得して保存する方法
他サーバーにある画像をURLで指定して、PHPで取得して保存する方法のメモ。 フ ...
-
PHPで画像アップロード、リサイズ、形式変換(jpg->webp等)はclass.upload.phpが便利
今までPHPで画像関連の処理を行う場合、リサイズの時のみsmart_resize ...
-
PHPでファイル書き込み時に「failed to open stream: HTTP~~」エラー
PHPでファイルを書き込む際に「failed to open stream: H ...
-
登録画像orノーイメージ画像の振り分け表示
<? /* 画像が登録されていれば当該画像を読み出し、 登録されていない場 ...
-
画像削除用function
ファイルパス、拡張子、seq番号、画像番号を渡してあげるだけ。 拡張子部分があれ ...