• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:imagejpeg)

異なるサーバでの画像アップロードに失敗する理由と解決方法

このQ&Aのポイント
  • サーバAとサーバBの二つのサーバがあり、画像ファイルを両方にアップロードしたい場合、imagejpegでfalseが返ってくることがあります。
  • 異なるサーバにアップロードする場合、imagejpegの第二引数にはファイルのパスではなくURLを指定する必要があります。
  • また、サーバB側の設定によっては外部からのファイルアップロードが制限されている場合があるため、サーバBの設定を確認する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

imagejpeg($image_new, 'http://サーバB/gazou.jpg'); この記述に関してですが、外部のサーバに置いてあるファイルに対して、HTTPプロトコルで内容を改変することは出来ません。 できちゃったら、アップロードするプログラムを組む必要もないし、FTPというプロトコルも必要無くなってしまいますよね。 サーバAにアップロードしたファイルを同時にサーバBにアップロードするということで、実現可能なアプローチとしては、 ・サーバBにもサーバAに設置してあるアップロードプログラムと同等の物を設置し、fsockopen関数などでHTTPヘッダを書いてやる(ブラウザの挙動と同じことをプログラムでさせる) ・サーバBへ、FTP関数などを用いてFTPで接続して、該当ファイルをアップロードする といったところになり、そこそこ手間をかける必要があります。

labilion
質問者

お礼

やはりFTP関数を使わないとどうにもならなそうですね… サーバ間でcopyができないので、同時に作成できればと思ったんですが、 結局同じですもんね。 ありがとうございます。

その他の回答 (1)

回答No.1

こんばんは。 やった事ないけど、多分無理じゃないかな・・・。 というか、1回目で'./gazou.jpg'を出力しているので、 file_put_contents('./gazou.jpg', 'http://サーバB/gazou.jpg'); ってやっちゃえば?

labilion
質問者

お礼

ありがとうございます。 その方法で試してみますね。

関連するQ&A