スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PHPでアップロードした圧縮ファイルが破損(CRCエラー)してしまう場合

  • 2012/04/05 17:22
  • Category: PHP
ああ~また3時間あまりはまった。もうこういうのイヤ。でも解決したときちょっと気持ちいい。PHPで(今回はCakePHP配下で)ファイルアップロードを作っていたが、CSVとかのファイルはうまくいっていたのに、圧縮ファイル(ZIP)をアップロードするとうまくいかない。$_FILESにもエラーはなく、move_uploaded_fileもきちんと働き、所定の場所にファイルができる。でもダウンロードすると解凍できず「CRCエラー」と怒られる。ほにゃ?ということでphp.iniやらhttpd.confやらAddTypeやらいろんなキーワードをネットで発見するものの、同一事例の報告がなく、はまりにはまりました。

PHPで圧縮ファイルのアップロードを扱うとき、move_uploaded_fileを利用する場合は、移動先として指定するパスのファイル名は「当該圧縮ファイルの正しい拡張子」である必要があるらしい。例えばzipのアップロードならhogehoge.zipでなければならない。拡張子なし(今回はこれだった)とか、.tmpとかだとうまく行かないことがあるということでどっとはらい。
スポンサーサイト

PHPでファイルアップロードできない時には

  • 2012/03/27 16:15
  • Category: PHP
はいそうですよ。私はアホですよ。CakePHPでファイルアップロードできないで小一時間はまってました。原因。php.iniのupload_max_filesizeディレクティブに「100MB」って入れちゃってました。これ「100M」が正解ね。100MBだと無効=0バイトになっちゃうのね。なので$_FILESでみてみるとerrorは1番(upload_max_filesizeより大きいですよ)なのね。

Smartyのゼロ埋め

  • 2012/03/12 13:01
  • Category: PHP
Smartyでゼロ埋め、いわゆるZeroPaddingをするというのは結構ニーズがあるらしいですね。
前のブログでもよくキーワードに乗ってました。
ただしSmartyではなくPHPの関数利用なのです。

数値を5桁(「1」を「00001」)にする例:


{$num|string_format:"%05d")

Pagination

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。