勉強したことのメモ

webプログラマが勉強したことのメモ。

フォームからzipファイルをアップロードしサーバ上で解凍したい

   

formからzipファイルをアップロードし、サーバ上で解凍したかった。またアップロードしたzipファイルは削除、解凍したファイルは同名にならないよう指定したディレクトリ内に展開したかった。以下に方法をメモ。

HTML部分

 

PHP部分

コメントの通りだがファイルが送信された場合にサーバにアップロードし、zipファイルを解凍。その後、zipファイルは削除し指定したディレクトリ内に展開する。展開したディレクトリ内にあるファイルを検索し、var_dumpでファイル名を出力する。

 

注意点

ファイルサイズに注意する

zipファイルでアップロードするのでzip内に複数のファイルが入っているケースが多いと思われ、結果としてファイルサイズが大きくなりそう。

なのでphp.ini側のアップロードサイズ上限やサーバ側のHDDもしくはSSD容量に注意する必要がある。

zip側でフォーマットを決めておく必要がある

今回はとりあえずPHPでzip解凍するところまで検証したかったので、適当なテキストファイルをフォルダに突っ込み、そのフォルダをzip圧縮した。これが例えば多重構造のフォルダになっていたりすると処理が非常に面倒くさそう。

なので多重構造は禁止だとか、アップロードする側にもある程度フォーマットを決めておく必要あり。

 - PHP

  関連記事

PHPで簡単にCSVファイルの生成

簡単にデータ並べるだけのCSVファイル生成。 file_put_contensで ...

フォーム用テンプレPHP

<?php ini_set( 'display_errors', 0 ); ...

setcookieで「Cannot modify」エラー

PHPでsetcookieを使うと「Warning: Cannot modify ...

PHP5.3にバージョンアップした際の注意

PHP5.1? ぐらいから5.3にバージョンアップした際に 色々とあったのでメモ ...

PHPでステータスコードを取得する方法

サーバーの死活監視でUptimeRobotを使っていたけど、どうも正常に監視して ...

PHPでゼロパディング

予め桁数を決めておいて、桁数未満の場合は0で埋めたい場合の処理。 str_pad ...

地理院のジオコーディングAPIをPHPから使用する

以前に地理院のジオコーディングAPIをjavascriptからajaxでリクエス ...

PHPでアクセスIPからランダム英数字のIDを作成

PHPで掲示板などにあるようなアクセスIPからランダム英数字のIDを作成したかっ ...

mysqldumpが使えないレンタルサーバでMySQLのバックアップ

mysqldumpが使えないレンタルサーバで開発を行うことがあり、尚且つ他社に使 ...

jQueryとprototypeの共存

prototypeを先に使っているがjQueryに移行してきている ページで、尚 ...