[PHP-users 32210] ファイルのアップロードが完了するまで処理を中断は可能?

Hiroshi Ishiura issy777 @ e-entrance.org
2007年 5月 28日 (月) 17:16:25 JST


石浦です。

フォームから画像のアップで確認画面でアップロードされたファイルを表示確認
できるようにしていますが、サイズが大きい場合アップロードが完了するまえに
表示しようとして、エラーとなってしまいます。

処理の流れとしては、
画像アップ時のテンポラリフォルダから指定のフォルダに一度コピーし、そのま
まファイルがコピー先に存在していたら画像を表示する
というようにしています。
以下に簡単に一部ソースを貼り付けます。
-------------------------------------------------------------------------
if (is_uploaded_file(@$HTTP_POST_FILES["file1"]["tmp_name"])) {
    copy($HTTP_POST_FILES["file1"]["tmp_name"],$tmp_dir."/".$HTTP_POST_FILES["file1"]["name"]);

if(is_file($tmp_dir."/".$HTTP_POST_FILES["file1"]["name"])){
$file1_size = getimagesize($tmp_dir."/".$HTTP_POST_FILES["file1"]["name"]);}
$file_whsize = upfile_size($file1_size[0], $file1_size[1]);
echo "<img
src=\"../../members/".$_SESSION["sLoginID"]."/includes/image_
resize.php?
image=".$HTTP_POST_FILES["file1"]["name"]."&maxw=".$file_whsi
ze[0]."&maxh=".$file_whsize[1]."&planid=tmp&img_dir=whatsnew\">"; //画像
縮小表示ライブラリ経由
}
-------------------------------------------------------------------------

画像ファイルがそれほど大きくない場合は転送がまにあい表示されるのですが、
サイズがある程度大きいとアップロードされるまえに表示しようとしてしまいエ
ラーとなってしまいます。
今回サーバの移転がありこれまでのサーバではこのような現象はおそらくみられ
なかったと思うんですが、検証テストをしている時に同現象にはまってしまって
います。

例えば
copy関数で処理がおわるまで次の処理に移らないような事はできないでしょうか。
回避策としてsystem関数でcpコマンドを走らせ「;」をつけて順番に処理をさせ
るようにするのもの解決策の1つと考えていますが。

よい解決法がありましたらご教授ください。
よろしくお願いいたします。

-- 
Hiroshi Ishiura <issy777 @ e-entrance.org>




PHP-users メーリングリストの案内