PHP + Windows + GD でアップロードした画像ファイルにはまったメモ
Windows を使って開発していて、本番環境は Amazon Linux、とかそういう状況。
アップロードした画像に対して、GD の処理をしようとしたらエラーになった。
Installed GD does not support 'tmp' images
→ 「'tmp' なんて拡張子知らんがな。」
→ 私もそんなものを上げた覚えはない。
ファイルをアップロードすると、勝手に Temp フォルダに ****.tmp みたいな名前でファイルができる。
そのままいじると上記のエラーになる。どうも Mac はそんなことない模様。
Windows がローカル環境だけなら下記で逃げれば良さそう。
アップロードした画像に対して、GD の処理をしようとしたらエラーになった。
Installed GD does not support 'tmp' images
→ 「'tmp' なんて拡張子知らんがな。」
→ 私もそんなものを上げた覚えはない。
ファイルをアップロードすると、勝手に Temp フォルダに ****.tmp みたいな名前でファイルができる。
そのままいじると上記のエラーになる。どうも Mac はそんなことない模様。
Windows がローカル環境だけなら下記で逃げれば良さそう。
$file_info = $_FILES[$key];
// Windows の時だけ元のファイルの拡張子を付けてやる。さもないと .tmp という謎の拡張子になって GD がしぬ。
// Installed GD does not support 'tmp' images
if (PHP_OS == 'WINNT') {
$oldname = $file_info['tmp_name'];
$newname = $file_info['tmp_name'] . '.' . pathinfo($file_info['name'], PATHINFO_EXTENSION);
rename($oldname, $newname);
$file_info['tmp_name'] = $newname;
}
by tokage-shippo
| 2016-01-04 15:04
