プロが教えるわが家の防犯対策術!

画像ファイルのアップロードに関する以下のユーザー定義関数は、それぞれどのような処理
をする関数ですか?恐らく、「ファイルがアップロードされたかどうかチェック→画像の拡張子を取得→指定の拡張子であるかどうかチェック→保存する新しいファイル名の生成(ユニークな値を設定する)→同名ファイルが存在するかどうかチェック→アップロードされたファイルを指定ディレクトリに移動して保存する」という処理をユーザー定義関数に分けていると思われます。


// 画像関連の処理

$image = get_file('image');

function get_file($name){
if(isset($_FILES[$name]) === true){
return $_FILES[$name];
};
return array();
}

function get_upload_filename($file){
if(is_valid_upload_image($file) === false){
return '';
}
$mimetype = exif_imagetype($file['tmp_name']);
$ext = PERMITTED_IMAGE_TYPES[$mimetype];
return get_random_string() . '.' . $ext;
}

function get_random_string($length = 20){
return substr(base_convert(hash('sha256', uniqid()), 16, 36), 0, $length);
}

function is_valid_upload_image($image){
if(is_uploaded_file($image['tmp_name']) === false){
set_error('ファイル形式が不正です。');
return false;
}
$mimetype = exif_imagetype($image['tmp_name']);
if( isset(PERMITTED_IMAGE_TYPES[$mimetype]) === false ){
set_error('ファイル形式は' . implode('、', PERMITTED_IMAGE_TYPES) . 'のみ利用可能です。');
return false;
}
return true;
}

define('PERMITTED_IMAGE_TYPES', array(
IMAGETYPE_JPEG => 'jpg',
IMAGETYPE_PNG => 'png',
));

A 回答 (1件)

マルチポストしても回答は同じですよ


「get_file()しか呼ばれていない」というところをよく理解してください
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!