• 締切済み

大きいファイルのアップロードについて

現在php mydql で掲示板を作成中です。 デジカメで撮った写真をアップさせるのですが、大きなファイルをアップするのは時間がかかるので悩んでいます。(海外ユーザーが多く、まだダイアルアップを使う人もいます) たとえば2Mくらいの写真をアップしてもらうのに何かいい方法はありませんか?圧縮とか? 現在写真サイズを300Kに制限して、一度アップされた写真をImageCreateTrueColorでサイズダウンしています。 アップする前にファイルサイズを落とす処理を実行し、小さくなった写真をアップさせる方法を教えてください。

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

とりあえず、ファイルを縮小するような方法を 解説したページをつくって「アップロードの仕方」 として注意をつけましょう。 いまでこそ2Mは普通ですが、ブロードバンド以外の ユーザーには致命的なサイズです。 ファイルのアップロードには個人がそれなりに 努力が必要だという啓蒙すべきです。 ちなみにzip系のphp関数はありますが、jpegなどに は力をあまり発揮しませんので、元サイズが 大きい限り有効ではありません。

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

こんにちは。 PHPには無理です。 ユーザーにファイルサイズを小さくしてもらってアップロードするしかありません。 PHPでクライアントのファイルを操作することは無理です。 あくまで、ファイルのアップロード処理が終わらないと無理です。

関連するQ&A

  • PHPのファイルアップロードについて

    現在CakePHPでファイルのアップロードを行おうとしています。 で一通りアップの手順は書き終わったのですが、じつはアップロードするファイルが マックスで100MBほどになる可能性があるのです。 現在、仮のサーバーで試してみたところ10~11MBほどのファイルであればちょっと時間がかかりますが、アップはできました。 ただしそれ以上の重いファイルになるとBadRequestとなりアップできません。 通常PHPはデフォルトでは2MBが最大アップ容量だと思います。 それの制限を #Apache側でのリクエストのバイト制限 LimitRequestBody 300000000 #PHP.ini側でのPOSTリクエストのバイト制限 php_value post_max_size 300M #PHP.iniでのファイルアップロードのバイト制限 php_value upload_max_filesize 300M 上記のような記述をhtaccessに記述しています。 ところが、12MB~以上のファイルになるとブラウザがBadRequetを返してしまいます。 これは実際のレンタルサーバーだけでなく、ローカルのApache環境でも同様の現象が起きます。 他に、アップ時に制限をかけているプロパテイ的なものがApacheやPHPの設定にあるのでしょうか? アップロードに詳しい方ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • アップロードするとファイルサイズが大きくなる

    ホームページにファイルをアップロードすると、PCで確認したサイズより大きくなります。 結果、借りている容量を超えてしまい途中でアップできなくなります。 例えば、プロバイダーに90Mbを借りているところへエクスプローラのプロパティで  サイズが77.5Mbディスク上のサイズが103Mbのフォルダー内の物を サーバーにアップすると  サイズが77.5Mbでは上がらず、59Mbにまでサイズダウンして何とか上がります。  (ディスク上のサイズはファイルシステムの関係もあり無視します) 77.5Mbの物がアップすると90Mbを超える・・・、借りている容量も少ないので何とかしたい ・アップしてもサイズが増えない様にできないだろうか ・写真等はjpg、gifしかサーバー側が対応していないようですが、他に方法はないのだろうか 何かうまい方法があればアドバイスをお願いします  

  • ファイルのアップロードに関して

    phpでファイルのアップロードをするプログラムを作成しています。 当初 move_uploaded_file を使い意外と簡単に作れたのですが、ファイルの所有者がApacheになってしまいます。 何故、ファイルの所有者が Apache でまずいのかというと、ユーザーの使用域を quota で制限しているのですが、所有者がApacheになっていると、制限ができません。 (ユーザーのエリアにアップロードしても、ユーザーが Apache になっていると、使用済み容量が増えません。) そこで、アップロード後 chown で所有者を変更しようと思いましたが、ルート権限でないと変更できないようで、うまく行きませんでした。 マニュアルを見ていると ftp_connect で接続し ftp_login でログインしてから ftp_put で転送してやれば所有者をログイン時のユーザーにできそうと思い作成したのですが、 <FORM method="post" action="hoge.php" enctype="multipart/form-data"> : : <input name="userfile" size="60" type="file"> では、hoge.phpに転送元のファイル名がうまく引き渡されません。 よい知恵はないでしょうか。 尚、サーバー側の環境は Fedora 1 Apache/2.0.48 PHP Version 4.3.4 です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • JPEGファイルについて

    Webサイトに掲載している履歴書に写真を登録する必要があります。 そのサイトは写真のファイルを50Kバイトまでに制限しています。 通常630Kバイトぐらいのデータになるため、圧縮すると画像がきれいではありません。デジカメもしくは携帯電話で写真を撮るときによい方法があれば教えてください。または、圧縮方法できれいにできる方法でもかまいません。よろしくお願いいたします。

  • JPEGファイルの圧縮

    JPEGファイルの圧縮方法を教えて下さい。 先般、デジカメで20~30枚撮影しました。 どれもファイルサイズが3~4MB程度あり、とてもメールに添付出来ません。 デジカメで撮影した写真をスマホでも見たいと思うのですが。 PC等に疎い私でも簡単に出来る方法があれば教えて下さい、、、 ちなみにPCはwindows7でJPEGファイルは一旦デジカメからPCに移しています。 スマホで閲覧するには1枚1枚ファイルサイズを圧縮してからgmailなどに添付するアナログの方法以外思い付かなくて、、、 ぜひともお詳しい方がいらっしゃいましたら教えて下さい。

  • ファイルのアップロードの制限

    Apache+PHPでCSVファイルをアップロードしようかなと思っているのですが、ふと疑問に思ったのですが、ファイルサイズに制限などはあるのでしょうか? もし、今回アップロードさせるとしたら、何百MBぐらいになるんじゃないかと思っています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • メールの添付ファイルで画像を送る時

    デジカメでとった写真を送りたいんですが、そのまま添付ファイルにしてしまうと、1M位の容量なので通常のダイヤルアップで接続している先方に迷惑がかかると思うのです。圧縮して送る、受信先で自己解凍するなどの言葉はよく聞くのですが、方法がわかりません。良い方法ご存知の方、アドバイスお願いします。 なお、送り先も私も素人ですのでよろしくお願いします。           Outlook Express5利用してます。

  • アップロードの対象を複数指定

    例えば1.zipから30.zipまでを簡単にアップロードさせる掲示板を作りたいのですが、ユーザはファイル選択のダイアログを開いて選択するのを30回繰り返さなくてはいけません。 複数のファイルを簡単にたくさん選択する方法はありませんか? 30個のzipを1つにしておいてもらうことはしません。ユーザは圧縮について詳しくありません。

    • ベストアンサー
    • PHP
  • Microsoft WORDのファイルサイズ

    Microsoft WORDのファイルサイズについてですが、 デジカメで撮影した写真を貼り付けているのですが、 ワードのファイルサイズが貼り付けた画像のファイルサイズよりも 大幅に大きくなってしまってこまっています。 (貼り付けた画像は数十KBなのにワードファイルは数十MBにもなりました。 図の圧縮で圧縮しても数MBにしかならない) どうにかファイルサイズを小さくすることはできないでしょうか??

  • ファイルアップロードについて

    環境: OS/Vine Linux 3.2 Apache 2.0.55 mod_ssl 2.0.55 OpenSSL 0.9.7d PHP 5.1.2 上記の環境で簡単なファイルアップ処理をPHPで 試みようと思っていますが、できなく困っています。 HTMLからフォームを使って ファイルを選択した後に、「Send File」ボタンを 押してもまずファイルサイズが取得できません。 print_r($_FILES)を確認すると、 「Array ( [userfile] => Array ( [name] => test.jpg [type] => [tmp_name] => [error] => 2 [size] => 0 ) ) 」とクライアントマシンの元ファイル名とエラーコードのみ表示されます。 ちなみにupload_max_filesizeは2Mで設定しています。 なので、MAX_FILE_SIZEは2Mになりますよね?? どなたかご教授下さい。よろしくお願いいたします。 ソース: 【html】 <form enctype="multipart/form-data" action="b.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> Send this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> 【php】 <?php print_r($_FILES); //続く....... ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう