- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:imagejpeg)
異なるサーバでの画像アップロードに失敗する理由と解決方法
このQ&Aのポイント
- サーバAとサーバBの二つのサーバがあり、画像ファイルを両方にアップロードしたい場合、imagejpegでfalseが返ってくることがあります。
- 異なるサーバにアップロードする場合、imagejpegの第二引数にはファイルのパスではなくURLを指定する必要があります。
- また、サーバB側の設定によっては外部からのファイルアップロードが制限されている場合があるため、サーバBの設定を確認する必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
imagejpeg($image_new, 'http://サーバB/gazou.jpg'); この記述に関してですが、外部のサーバに置いてあるファイルに対して、HTTPプロトコルで内容を改変することは出来ません。 できちゃったら、アップロードするプログラムを組む必要もないし、FTPというプロトコルも必要無くなってしまいますよね。 サーバAにアップロードしたファイルを同時にサーバBにアップロードするということで、実現可能なアプローチとしては、 ・サーバBにもサーバAに設置してあるアップロードプログラムと同等の物を設置し、fsockopen関数などでHTTPヘッダを書いてやる(ブラウザの挙動と同じことをプログラムでさせる) ・サーバBへ、FTP関数などを用いてFTPで接続して、該当ファイルをアップロードする といったところになり、そこそこ手間をかける必要があります。
その他の回答 (1)
- taka451213
- ベストアンサー率47% (436/922)
回答No.1
こんばんは。 やった事ないけど、多分無理じゃないかな・・・。 というか、1回目で'./gazou.jpg'を出力しているので、 file_put_contents('./gazou.jpg', 'http://サーバB/gazou.jpg'); ってやっちゃえば?
質問者
お礼
ありがとうございます。 その方法で試してみますね。
お礼
やはりFTP関数を使わないとどうにもならなそうですね… サーバ間でcopyができないので、同時に作成できればと思ったんですが、 結局同じですもんね。 ありがとうございます。