質問: ユーザーがWebから画像を入力(アップロード)して、サーバーで画像処理を行い、処理後の画像を表示させるウェブページを作成しようとしています。 ですが、ユーザー視点では入力画像をサーバーに保存されると安心して使用していただけないと思います。 そこで、**画像を保存せずに、もしくは一時保存で処理、および出力できるか**どうか考えています。 画像処理はpythonで行います。 試みた工程は 1. htmlで画像の受付 2. phpでサーバーへのアップロード 3. pythonで画像処理 4. phpで表示 です。pythonはphpでpassthruを使って実行し、処理後画像のパスを出力するようにしています。 これでは**1pythonに処理させる際に画像のパスが必要なのでアップロードされた画像をサーバーに保存**しています。また、**2処理後の画像も保存して、そのパスで表示**しています。 この2度の保存を行わずに完結させたいと考えています。 アップロードの際に一時保存されるデータでは表示もpythonにおくることもできないことは確認しました。 passthruでは画像を直接出力できるらしいのですが、調べても実際に行っているサイトは見つからなかったので、よくわかりません。 1、2を改善できる方法はありませんか? よろしくお願いします。 <追加編集1> pythonで画像処理を行うのが前提となっています。(pythonのプログラムはすでにあります。) 現在の状況を詳しく書くと HTML5のフォームで画像を受け付け→PHPで画像を保存→PHPのコマンドを実行させる関数でpythonのプログラムを画像のパスを引数に実行し→pythonで処理後画像を保存→PHPで戻り値を使って画像表示 です。 このやり方しか知らないためこの方法で行っています。PHPは必須ではないです。 追加になりますが使用言語制限はHTML5、PHP、JavaScript、pythonです。使う必要がないものは使わなくてもいいのですが、これらの言語だけで完結させたいです。
回答: UNIXパイプを使うという手はどうでしょうか? これなら一時ファイルを作ることなくPythonプログラムにバイナリデータを渡して処理させることが出来ます。 PHPは詳しくありませんがproc_openやExpectを使えばできるようです。 Pythonプログラムとの間で標準入出力を使って通信してください。