ラボ > PHP:ファイル関連、Javascript関連

PHP・jqueryでファイルを大容量のファイルをアップロード

そのままアップすると落ちる・・・。メモリの割り当て変更がNGのとき。jQuery-File-Uploadってのを使うとき。

作成日:2018-05-01, 更新日:2018-10-13

基本

・ファイルを適当に分割して、アップロード
・サーバ側で分割されたファイルを取得して合体させる
ってのが基本的な動作。

考えるのが面倒だし、すでに準備してくれている人達がいるので、それを利用する。

jQuery-File-Upload

▼jQuery-File-Uploadのサイトのデモ
jQuery File Upload Demo(Basicバージョン以外にも色々と用意されている。)

最小限のファイル構成

ダウンロードして試したいんだけど、こういうのって、余計なファイルが多いから困る。

上記サイトの「Basic Plus」ってヤツの最小構成(jquery.fileuploadは、アップロード対象外にするファイルは省いても良さげ)

  • css/jquery.fileupload.css
  • js/vendor/jquery.ui.widget.js
  • js/
    • jquery.iframe-transport.js
    • jquery.fileupload.js
    • jquery.fileupload-process.js
    • jquery.fileupload-image.js
    • jquery.fileupload-audio.js
    • jquery.fileupload-video.js
    • jquery.fileupload-validate.js
  • img/
    • loading.gif
    • progressbar.gif
  • server/php/
    • files/.htaccess
    • index.php
    • UploadHandler.php
  • basic-plus.html

画像をアップした場合は、下記のような感じになるっぽい。
1.「basic-plus.html」でファイルをアップさせると「jquery.fileupload.js」あたりを使って、サーバに送信
2.「server/php/index.php」が「server/php/UploadHandler.php」を使って「server/php/files」にファイルを保存。
3.サムネイル画像は「server/php/files」の中に「/thumbnail」を作って、保存してくれる。

up可能なファイル容量の上限を変更

ini_set()は効かないそうだ。
※php.ini、httpd.confを変更する方法もあるけど、サーバの設定変更は避けたいので「.htaccess」の修正方法のみ。

▼「.htaccess」に追加

php_value upload_max_filesize "8M"