質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

1回答

368閲覧

画像ファイルのアップロードについて

turtle410

総合スコア13

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2021/04/14 06:53

前提・実現したいこと

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

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/04/14 06:55

以前も同じような質問されてましたが、ユーザー定義関数なんか定義した人以外意味なんか分かりませんよ。 何かのプログラムのソースなら動かしてみればわかるんじゃないですか?
m.ts10806

2021/04/14 06:57

コメントしても回答しても無反応を貫かれるので解決する気なしなのに無意味に投稿し続ける悪徳ユーザーとして通報しました。
K_3578

2021/04/14 07:08

私も通報しておこう。
guest

回答1

0

ユーザー定義関数はget_file()しか呼ばれていなので
imageというパラメータで受け取ったファイルがあれば
その接続データを返しているだけです。
ないときに配列を返している意図はわかりません
(multipleな処理なのかもしれません)

投稿2021/04/14 07:06

yambejp

総合スコア115001

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問