画像の変換中に画面をブロックする方法

このQ&Aのポイント
  • PHPを使用して複数の画像をアップロードするページを作成しています。
  • アップロード時に「image magick」を使用して画像の変換処理を行っています。
  • 画像の変換中に画面をブロックするために、jqueryのblockUIを使用することができます。
回答を見る
  • ベストアンサー

画面をブロックしたいと思っています。

PHPで複数の画像をアップロードするページを作成しています。 アップロードする際に「image magick」を使用して変換処理を行っています。 画像の変換中に画面をブロックしたいと思い、ネットで調べていたらjqueryのblockUIを知りました... ただ私が記述したプログラムではどのように実装したらいいのかが解らず、投稿させていただきました。 私が記述したプログラムはPOSTする際にボタン名をPOSTして処理を分ています。 下記のように感じで記述しています。 switch($_SERVER['REQUEST_METHOD']){  case 'POST':   switch($aryPOST['BTN']){    case "確認":     ・    <省略>     ・     ※この中でforeachでアップロードのファイル分、繰り返して画像変換処理を行っています。      入力エラーや処理中にエラーが発生した場合は入力ページを出力していますが、正常に処理を実行した場合は確認ページを出力しています。     ・    <省略>     ・     break;    case "完了":     break;    default:   }  default: } 説明が下手で皆さんに伝えられたか心配ですが理解していただけましたでしょうか。 簡単にいうと画像の変換中に画面をブロックしたいと思っています。 上記のソースにjqueryのblockUIをどのように記述したら実装できるのでしょうか。 申し訳ありませんがご教授いただけませんでしょうか。 どうか、皆さんのお知恵をお貸しいただけませんでしょうか。 宜しくお願いします。

  • AJAX
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 一応、サンプルを作ってみましたが、いまの作りにそのまま使えるかはわかりません。 あくまで参考例として見てください。 http://hppg.moe.hm/okwave/qa/q8209142/ No.1で回答した通りの動きで作ってあります。 (アップロード後のファイル名は固定で、排他処理等も考えてないので、同時アクセス時の動作で不具合があるかもしれません。ご了承ください。) また画像処理は特に行っていなく、sleepによりレスポンスを遅らせて、ブロック中の表示がわかるようにしてあります。

T-k_jp
質問者

お礼

連絡が遅くなってすみません。 それにサンプルを作成して説明いただきありがとうございます。 私が作成したプログラムに使えるかわかりませんが参考にさせていただきます。 ありがとうございました。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 >上記のソースにjqueryのblockUIをどのように記述したら実装できるのでしょうか。 jQueryのblockUIはわかっているとは思いますが画面のブロックですのでPHPのソースは直接関係がありません。 アップロード処理にAjaxを利用して非同期で実行し、完了というレスポンスがくるまでブロックを表示するという処理になります。 なので画面上のアップロード部分の改修と、PHP側のレスポンスの部分を改修する必要があると思います。 ・Ajaxにてファイルをアップロード ・画面にブロックを表示 ・(サーバ上で画像の変換処理を実施) ・(サーバ上から完了のレスポンス) ・確認画面へ遷移 流れはこんな感じになると思います

T-k_jp
質問者

お礼

連絡が遅くなってすみません。 なるほど。 流れを説明していただきありがとうございます。 1つずつ進めていきたいと思います。

関連するQ&A

  • phpのswitch文

    お世話になります。下記のようなフォームがあります。 <form method="post"><input type="submit" value="新規登録" name="registration"><form method="post"><input type="submit" value="一覧" name="list"></form> 新規登録と一覧、2つのボタンがあるのですが押されたボタンによって処理を区別したいです。 データを受け取るPHP内に下記のように記述したのですが思い通りの結果になりません。アドバイスを宜しくお願いします。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <?php switch(ココの記述が判りません){ //新規登録画面を表示 case "registration": print "新規登録!"; break; //一覧を表示 case "'list', )": print "一覧表示"; break; default: print "ココがデフォルト表示"; } ?> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー if文だとif(isset($_POST["registration"])){の記述で分岐できたのですが、条件分岐が多いのでswitch文で書きたいです。 宜しくお願いします

    • ベストアンサー
    • PHP
  • switch文の中に、throws new Exception();を書くとコンパイルエラーになる

    以下のようなswitch文で、 default:内の、throws new Exception(); の処理部分で 「式の開始部分が不正です」というコンパイルエラーになってしまいます。 書き方が間違っているのでしょうか? default:の場合に、throws new Exception(); の処理を行いたいのですが どのように書けば、エラーにならないのか教えて下さい。 -------------------------------- switch (number) { case 0: //処理 break; case 1: //処理 break; default: throws new Exception(); } --------------------------------

    • ベストアンサー
    • Java
  • switch文caseについて

    switchのcaseについてですが、数字を直接記述せずに、const変数に値を代入して使用出来ますか? 例) const int A = 1; const int B = 2; switch(suuti){ case A: 処理; break; case B: 処理; break; } コンパイルすると、「case 式は、整数型定数でなければなりません。」と出てきてしまうのですが、直接数値を記述しないといけないのでしょうか? よろしくお願いします。

  • mp3について

    プログラム初心者です 容量小さ目のmp3のアップ ロードする方法をおしえてください 拡張子はmp3のみ対応できれば満足です 画像をアップロードする場合と違うところはどこでしょうか?(気をつけなければいけないとこはありますか?) IMEタイプはmp3の場合どうなりますか? 他のエラー処理は画像アップロードとほぼ同じだと思うので省略しています 下記の画像アップロードを少し改造して作れないでしょうか?(下記の部分だけわかればなんとかなるかもしれません) // 画像ファイル情報取得 $info = getimagesize($tmp_name);//画像の幅、高さ、拡張子、<img>タグ内でそのまま使用できる文字列、ビット/ピクセル、チャンネル数、MINEタイプを配列で取得(偽装対策) // 取得に失敗したときは画像ファイルではない if ($info === false) { throw new Exception('nogif');//画像ファイルではありません } // MimeTypeを調べる switch ($info['mime']) { case 'image/gif': $mime = $ext = 'gif'; break; case 'image/png': $mime = $ext = 'png'; break; case 'image/jpeg': $mime = 'jpeg'; $ext = 'jpg'; break; default: throw new Exception('mime');//この種類の画像形式は受理できません } よろしくお願いします

    • ベストアンサー
    • PHP
  • PHPについて質問です。(switch文)

    PHPについて質問です。(switch文) 前のフォームのテキストフィールドから受け取った"fn"の値を使ってswhitch文で判定したいです。 <?php $a = $_POST['fn']; switch( $a ){ //←ここが予期せぬエラーとでました。 case 1: echo '$aは1です。'; break; case 2: echo '$aは2です。'; break; case 3: echo '$aは3です。'; break; default: echo '$aは1・2・3のいずれでもありません。'; } ?> どこらへんがいけないのですか?

    • ベストアンサー
    • PHP
  • CALLBACK 内の DefWindowProc の場所

    こんにちは、最近 無料版Borland C++Compiler 5.5 を使って WIN32 API の勉強をしています 気にしなければ別に問題ないのですが、どうしても気になって気持ち悪いので、質問させて下さい 参考書や Web でコード例を見ていると、CALLBACK 内の DefWindowProc関数 を switch の default にする例 と switch の default を書かずに CALLBACK の return にする例があります 好みの問題なのでしょうか? switch は、 default を入れた方が正式と思いますが、default に DefWindowProc を記述すると コードが長くなるにつれ DefWindowProc が switch 内でちょこちょこ必要になってきます 私は、switch の default があった方が良いかなと思い DefWindowProc を default に記述していますが、コードが短くなるなら CALLBACK の return に DefWindowProc を記述しようと思っています どちらが良いのでしょうか? 暇な時でかまいませんので、ご教授下さい 宜しくお願い致します ※DefWindowProc の 記述場所を CALLBACK の return にする LRESULT CALLBACK WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) {   switch(uMsg){     case WM_DESTROY:     PostQuitMessage(0);     break;   }   /*基本的なメッセージの処理*/   return DefWindowProc(hWnd, uMsg, wParam, lParam); } ※DefWindowProc の 記述場所を switch の default にする LRESULT CALLBACK WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) {   switch(uMsg){     case WM_DESTROY:     PostQuitMessage(0);     break;   default:     /*基本的なメッセージの処理*/     return DefWindowProc(hWnd, uMsg, wParam, lParam);   }   return 0; }

  • Switch文における、returnとbreakについて

    いつもお世話になります。 今回は、switch文において質問します。 XOOPSの中のスクリプトからですが、 ■ A code: --------------- switch($esc_type){ case 'html': return htmlspecialchars($string, ENT_QUOTES, $char_set); case 'htmlall': return htmlentities($string, ENT_QUOTES, $char_set); -----(中略)------ default: return $string; } ■ B code: --------------- switch($level){ case '1': return '\part{'; break; -----(中略)------ case '6': return '\subparagraph{'; break; } というのがありますが、 質問(1) switch文には故意にbreakを書かないのちょっと別として、 return は、breakを、省略できるのか、それともこれらは、等価なのか、 それとも、やはり、returnでもbreakを書くのがいいのか、教えてください。 質問(2) また、通常では、defaultでも、break が必要だとおもいますが、 省略?されているのも結構ありますが、breakがあるのが正解ですか? それとも、defaultでbreakはもともと必要ないのですか? これも教えてください。 どうか、よろしくお願いします。

    • 締切済み
    • PHP
  • caseにわざわざ{}をつける理由。

    記述の仕方なのですが、他のソースを見ていた時に、caseに{}をつけている場合があったのですが、別に{}無しの case 1: 式; break; でも同じということで良いのでしょうか? わざわざ付けていたので何か意味でもあるのか気になりました。 {}は式を集めた1つの式の意味という解釈でよいのでしょうか? <?php $a = 2; switch ($a){ case 1:{ print "1\n"; break; } case 2:{ print "2\n"; break; } default:{ print "etc\n"; break; } } ?>

    • ベストアンサー
    • PHP
  • switch の範囲指定

    switch文で以下のように書いた時に処理はCを実行するのですが、 変数a が 0~9の時に こうしますよ と範囲がまだ狭い時はこのように書いても処理はできると思いますが 変数a の範囲が 0~99だった場合、いちいちcase を100回書いて(defaultを使えば処理は減るだろうけど) と数字を100回書かないといけないのはとても面倒だと思うのです。 そこで以下のようにifを使わずにswitchを使って範囲を指定する方法はありませんか? //ifを使った場合の範囲指定 if( ( 0 <= a ) && ( a < 25 ) ){ //略 } else if( ( 25 <= a ) && ( a < 50 ) ){ //略 } else if( ( 50 <= a ) && ( a < 75 ) ){ //略 } else if( ( 75 <= a ) && ( a < 100 ) ){ //略 } //ソース int a = 6; switch( a ){   case 0: case 1:     //処理A     break;   case 2: case 3: case 4:     //処理B     break;   case 5: case 6:     //処理C     break;   case 7: case 8: case 9:     //処理D     break; }

  • エスケープ処理

    どうも初めまして。 switch文を用いてページを振り分けてますが、 この場合$_GETはhtmlspecialcharsでエスケープ処理するべきでしょうか?それともSQL構文が入力されることも考えられるのでmysql_real_escape_string()も使うべきなのでしょうか? ああ混乱してます><; どなたか、よろしくお願いします if(isset($_GET['page'])){ $page = $_GET['page']; }else{ $page = "home"; } switch ($page) { case 'home': require ("home.php"); break; ~同じようなのが複数~略 default: echo "ページが見つかりませんでした"; break; }

    • ベストアンサー
    • PHP