前提・実現したいこと
画像ファイルのアップロードに関する以下のユーザー定義関数は、それぞれどのような処理をする関数ですか?
恐らく、
「ファイルがアップロードされたかどうかチェック→画像の拡張子を取得→指定の拡張子であるかどうかチェック→保存する新しいファイル名の生成(ユニークな値を設定する)→同名ファイルが存在するかどうかチェック→アップロードされたファイルを指定ディレクトリに移動して保存する」
という処理をユーザー定義関数に分けていると思われます。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
PHP
1 2// 画像関連の処理 3 4define('PERMITTED_IMAGE_TYPES', array( 5 IMAGETYPE_JPEG => 'jpg', 6 IMAGETYPE_PNG => 'png', 7 )); 8 9$image = get_file('image'); 10 11function get_file($name){ 12 if(isset($_FILES[$name]) === true){ 13 return $_FILES[$name]; 14 }; 15 return array(); 16} 17 18function get_upload_filename($file){ 19 if(is_valid_upload_image($file) === false){ 20 return ''; 21 } 22 $mimetype = exif_imagetype($file['tmp_name']); 23 $ext = PERMITTED_IMAGE_TYPES[$mimetype]; 24 return get_random_string() . '.' . $ext; 25} 26 27function get_random_string($length = 20){ 28 return substr(base_convert(hash('sha256', uniqid()), 16, 36), 0, $length); 29} 30 31function is_valid_upload_image($image){ 32 if(is_uploaded_file($image['tmp_name']) === false){ 33 set_error('ファイル形式が不正です。'); 34 return false; 35 } 36 $mimetype = exif_imagetype($image['tmp_name']); 37 if( isset(PERMITTED_IMAGE_TYPES[$mimetype]) === false ){ 38 set_error('ファイル形式は' . implode('、', PERMITTED_IMAGE_TYPES) . 'のみ利用可能です。'); 39 return false; 40 } 41 return true; 42} 43 44
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。