<?php
// *************************************
// キャラクタセット
// *************************************
header( "Content-Type: application/json; charset=utf-8" );
// *************************************
// キャッシュ無効
// *************************************
session_cache_limiter('nocache');
session_start();
// ファイルを移動するフォルダ
$target_folder = "./images/";
$cnt = $_POST["FILE_COUNT"] + 0;
for( $i = 0; $i < $cnt; $i++ ) {
$image_target = "image".($i+1);
if ( $_FILES[$image_target]["error"] == 0 ) {
// *************************************
// 1) 画像フォーマットの取得
// *************************************
$type_string = image_type_to_mime_type( exif_imagetype( $_FILES[$image_target]['tmp_name'] ) );
// *************************************
// 2) オリジナルファイル名の取得
// *************************************
$file = explode(".", $_FILES[$image_target]['name']);
// *************************************
// 3) 日本語ファイル名対応
// *************************************
$file_name = urlencode( $file[0] );
// *************************************
// 4) 保存ファイル名を作成
// a) 拡張子決定
// b) uniqid() でファイル目をユニーク
// *************************************
$target = "";
if ( $type_string == "image/jpeg" ) {
$target = uniqid() . "_{$file_name}.jpg";
}
if ( $type_string == "image/gif" ) {
$target = uniqid() . "_{$file_name}.gif";
}
if ( $type_string == "image/png" ) {
$target = uniqid() . "_{$file_name}.png";
}
if ( $target == "" ) {
$_FILES["image"]["result"][] = "アップロードできないフォーマットです";
}
else {
// *************************************
// アップロードファイルの保存
// *************************************
if ( @move_uploaded_file( $_FILES[$image_target]['tmp_name'], $target_folder . $target ) ) {
$_FILES[$image_target]["result"] = "アップロードに成功しました";
}
else {
// なんらかの環境エラー
$_FILES[$image_target]["result"] = "アップロードに失敗しました";
}
}
}
else {
switch($_FILES[$image_target]["error"]){
case 1:
$_FILES[$image_target]["result"] = "php.ini の upload_max_filesize ディレクティブの値を超えています";
break;
case 2:
$_FILES[$image_target]["result"] = "HTML フォームで指定された MAX_FILE_SIZE を超えています";
break;
case 3:
$_FILES[$image_target]["result"] = "一部のみしかアップロードされていません";
break;
case 4:
$_FILES[$image_target]["result"] = "アップロードされませんでした";
break;
case 6:
$_FILES[$image_target]["result"] = "テンポラリフォルダがありません";
break;
case 7:
$_FILES[$image_target]["result"] = "ディスクへの書き込みに失敗しました";
break;
case 8:
$_FILES[$image_target]["result"] = "PHP の拡張モジュールがファイルのアップロードを中止しました";
break;
default:
$_FILES[$image_target]["result"] = "不明なエラーです";
}
}
}
// *************************************
// PHP の仕様情報に、result キーで
// エラーメッセージを追加したものを
// JSON としてブラウザに返す
// *************************************
print json_encode($_FILES)
?>
処理中です...