- 締切済み
アップロードの経過時間の表示
初めてお世話になります。 フォームから入力したファイルのサイズの最大値が大きくするにつれて、「サーバーにつながらない」と勘違いされるユーザが多くなってしまいました。 色々悩み、画像であれば、画像分割アップロードなども考えましたが、ここでは動画ファイルもアップロードできるようにしたいと思っています。 さて、私が実現したいのは、アップロードの時間やアップロードされたサイズの経過を表示するものです。 PHP ではこのような処理はできませんでしょうか。 また PHP 以外にその方法があればご教授いただければと思います。 オーサリングツールで似たような機能が実現できるとも聞きましたが・・・。
- shu_a
- お礼率88% (16/18)
- PHP
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- sisya
- ベストアンサー率39% (97/245)
はい… ちょっとアップロード中のファイル名を取得するのが厳しそうですね… submitが押されたタイミングで時間を取得して (別窓が開いた瞬間に時間を取得) それに一番近いファイルを現在のファイルとして認識するとか… 机上論なのでうまくいくかはちょっと判りませんが… 「PHPに設定しているもの」は php.infoで表示されるテンポラリ保存用のパスでOKです。 ただ、PHP上でそこに直接アクセスできるのかがちょっとわかりません…
- sisya
- ベストアンサー率39% (97/245)
パスはPHPに設定しているものでOKです。 ファイル名は…その瞬間パスの位置にあるファイル という位しかわかりませんね・・・ ちょっと厳しいかもしれないです。
お礼
ご回答ありがとうございます。 「PHPに設定しているもの」とはどれに当たるのでしょう。 テンポラリファイルに保存されているファイル名をアップロード中に取得するのはできるのでしょうか。 ちょっと不可能な気がしてきました。
- sisya
- ベストアンサー率39% (97/245)
アップロードを行っているウインドウは アップロードが完了するまで動作の制御は出来なくなると思いますので、 アップロードボタンを押した時に別ウインドウを開いて そこにアップロードしているファイルの容量をチェックしにゆくスクリプトを動作させ、 それを一定時間ごとにリロードさせれば 現在の状況は判るようになると思います。 …けどPHP単体で行うにはユーザの権限の問題で 厳しいのではないかと思います。
お礼
ご回答ありがとうございます。 ですが、アップロード中のファイルをチェックしにいくことなど可能なのでしょうか?またその場合、アップロード中のファイルパスはどのように取得できますか? また、PHP 単体で行わないとすれば、どのような方法がありますか。
関連するQ&A
- ファイルアップロード時の経過表示
ファイルアップロード時の経過表示 既に完成しているファイルアップロードのCGIを経過表示付きタイプに改造したいと考えています。 perlで作成、UNIXサーバで稼働しています。 アップロードしている間の経過表示は無理でしょうか? 一番簡単に実現する方法はどのようなものかアドバイス頂ければと思います。 なるべく改造は少なく済ませたいので、実現出来るなら有料のものでも構いません。 色々検索してみましたが、捜すことが出来ませんでした。 全面的に違うシステムに作り替えないと無理なものでしょうか?
- ベストアンサー
- Perl
- 大きいサイズのファイルのアップロード
よろしくお願いします。 Webサーバー側にファイルをアップロードして、特定の人にファイルをダウンロードさせるようなコードを書き始めています。 ファイルサイズは一つのファイルで最大で50MB超あります。 ですが、Webサーバー側で一度のPOST要求で10MBという制限があり、困っています。 アップロードする側でファイルを分割してアップロードし、サーバー側でファイルを結合すればいいのですが、アップロードする人間がそのあたりを分かってくれればいいのですが、その都度ツールなどでファイルを分割して・・・というやり方を強制することが少し困難です。 SWFUpload というもの使うと、複数のファイルを一度にアップロードできるようですが・・・ 大きいファイルを分割して複数のファイルにしてアップロード・・・というようなことを Flashなどを用いてブラウザ上でワンアクションでできないものでしょうか? サーバー側での結合はすぐかけるのですが、クライアント側でどういう処理をすればいいのか、 皆目検討が付きません。 そもそも、こういった大きいファイルを分割してアップロードする、ということはできるのでしょうか?
- 締切済み
- PHP
- 画像ファイル等をHP上のフォームでアップロードするには??
こんにちは。 ホームページのフォームからユーザーにファイル(画像ファイルなど)をサーバー上にアップロードしてもらうにはどのような方法がありますか?初心者なのでよくわからないんですが・・・簡単な事ですか?
- 締切済み
- Perl
- サーバーに負荷の掛けないファイルアップロード方法
ファイルをアップロードを行う際に負荷のかからない方法を調べています。 AとBの二種類のサーバーがあり、AサーバーにあるWebサイトから、最終的にBサーバーにファイルアップロードします。 Bサーバーへのアップロードをどうするかを検討しています。 Bサーバーでは、ユーザーがアップロードしたファイルを利用し、Aサーバーに加工したデータを返しています。 そこで、ユーザーがローカルにもっているファイルをアップロードする方法をAサーバーに負担が出来る限りかからないようにするにはどうすればよいか考えています。 ブラウザからアップロードするのはファイルサイズが大きくなると、PHPの設定を超えたり、サーバーへの負荷が大きくなってしまいます。 ⇒サイズが大きくなると時間がかかるのと、運用でどれほどのサイズがアップロードされるか想定ができない状態 Bサーバーに直接FTPでファイルをアップロードする ⇒ユーザーは限られたメンバーなので、権限を与えることは可能ですが、ユーザーの変更時に都度対応する必要があるのがネック 最終的にはFTPでアップロードをしてもらう方法になりますが、ブラウザから負担をかけずにアップロードする方法はないでしょうか? AサーバーにおいているWebページからBサーバーに直接アップロードをできるのが理想ですが、ブラウザからだとAサーバーにどうしてもファイルが一時的に保存されてしまうのではと思っています。 よろしくお願いいたします。 言語 PHP 5.2~ OS Ubuntu
- 締切済み
- PHP
- 画像ファイルのアップロード
PHPで、別サーバーに画像ファイルをアップロードしたいのですが方法が分かりません。 管理画面とユーザー画面が別々のサーバーになってます。 至急ご教授頂けますでしょか。お願い致します。
- 締切済み
- PHP
- PHPでアップロードした画像が表示されません
現在、Redhat9+Apache+PHP+PostgreSQLでサイトを構築しています。 PHPはRPMでインストールしました。 php-4.2.2-17.2.i386.rpm PHPでアップロードのフォームを作成し、jpegやgifなどの画像ファイルをアップロードし、表示するパスをDB(PostgreSQL)で管理しています。 画像は/tmp/ に一度アップされ、指定のパスに正常にコピーされているようなのですが、実際、ブラウザで見ると×印がでて表示されません。 アップロードされた画像をダウンロードして、画像処理ソフトなどで開いてみたのですが、表示されません。 アップロードの際に画像ファイルが壊れてしまったように思えます。 どなたか、解決方法等をご存知の方がいらっしゃいましたらご教授願えないでしょうか? よろしくお願いいたします。
- 締切済み
- PHP
- 大きいファイルのアップロードについて
PHPで大容量のファイルのアップロードされた場合の処理について教えてください。 PHPのアップロードの上限設定はphp.iniで設定できるのは分かります。 今回の質問は、FacebookやCookpad等で画像をアップロードをすると即座にアップロードされますが、どのように実現しているのでしょうか。複数人で画像等をアップロードするようなサイトの場合、アップロードしている間プロセスが占有されるため、できる限り早く処理できるとよいと考えております。
- ベストアンサー
- PHP
- 画像アップロードについて
いつもお世話になっております。 画像アップロード機能を作成し、問題なくアップロードを行うことができたのですが、 ある一定サイズ(約2MB)を超えるとアップロードが行われない現象が発生しました。 アップロードした画像は既定のサイズにリサイズして保存する仕様となっているのですが アップロード自体が行われないため、困っています。 以下【該当処理抜粋】------------------------------------------------------------- // ファイル名を設定する $fname = "hoge.jpg"; // 画像の幅・高さを設定する【規定値】 $w_size = "150"; $h_size = "100"; $tmp_name = $_FILES[$fname]['tmp_name']; // 画像ファイル名 $filename = "./hoge/".$fname; if (is_uploaded_file($tmp_name)){ $type = $_FILES[$fname]['type']; if ($type == "image/jpeg" || $type == "image/pjpeg") { // 画像ファイル存在チェック if(file_exists($filename)){ // ファイルが存在する場合は削除する unlink($filename); } // 画像ファイル名でアップロードをおこなう move_uploaded_file($tmp_name, $filename); // 画像ファイルのサイズを取得する list($sw, $sh) = getimagesize($filename); $src = imagecreatefromjpeg($filename); $dst = imagecreatetruecolor($w_size, $h_size); // 画像ファイルを既定サイズにリサイズする imagecopyresized($dst, $src, 0, 0, 0, 0, $w_size, $h_size, $sw, $sh); imagejpeg($dst, $filename); echo $fname[1]."ファイルのアップロードが完了しました。<br>"; }else{ echo $fname ."ファイルの画像形式が正しくありません。<br>"; } }else{ echo $fname ."ファイルはアップロードされませんでした。<br>"; } ---------------------------------------------------------------------------------------------------- 現象について調べたところ、PHPにはアップロードサイズが設定されている(デフォルト2MB)ため サイズの大きいファイルはアップロードできないようです。 サーバーはロリポップでレンタルしているためphp.iniの設定を変更ができません。 画像自体を事前にリサイズしてアップロードを行えば問題ないのですが、 今後、一般の方にも公開を予定してまして、リサイズ方法が分からない人(そのようなソフトがない人)にも 操作できるようにデジカメで撮った写真をそのままアップロードできる形式にしたいと考えています。 何かいい方法があればご教授願います。 【環境】 PG:php4.3.11 WEB:Apache
- 締切済み
- PHP
- 大容量のファイルアップロードについて
どうしても分からず、質問いたします。 自宅サーバを構築しPHPのブラウザによる大容量ファイルアップロードが可能にしようとしています。 (2GBくらいのファイルでもアップロードしたい) しかし、外側からアップロードを行う際、数十MBまでなら可能ですが、それ以上になると 途中までアップロード処理しているようですが、ページが表示されませんのエラーや、アップロードの処理が中断してしまいます。 ご教授お願い致します。 ■フォーム側の設定(MAX_FILE_SIZE値) <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="2048000000"> ■php.iniの主な変更箇所 memory_limit = -1 max_input_time = 6000 max_execution_time = 60000 upload_max_filesize = 2000M post_max_size = 2000M ■以下サーバの環境です。 OS:Windows2000 SP4 IIS5.0 メモリ:512MB PHP:5.2.5 よろしくお願い致します
- 締切済み
- PHP
お礼
何度もありがとうございます。 アップロードが一瞬で済むケースや、複数のファイルの場合は限界があるように思いますし、やはりアップロードが済んでからテンポラリに保存されたファイル名が返ってくる気がします。このテンポラリファイル名はまず予測不可能かと思いますし、アップロードが済むまで他プロセスがアクセスできないようにロックされているかと思います。 結論として、サーバー側にも特別なプログラムを仕組む必要がありそうですので、このカテゴリでの質問は打ち切らせていただきます。 ありがとうございました。