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

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

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

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

PHP

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

解決済

\[PHP\]アップロードされたファイルを出力する方法について

newyee
newyee

総合スコア0

ファイル

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

PHP

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

1回答

0評価

1クリップ

3120閲覧

投稿2017/08/11 07:51

現在PHPを勉強中の者なのですが、アップロードされたファイルを出力する方法が分からないので教えて欲しいです。
以下が現時点で僕が作成したコードなのですが、練習である機能を作っていてその一部のファイルアップロードの処理部分になります。他の部分に関しましては、コードが長くなるため省略させて頂こうと思います。

html

<form method="post" enctype="multipart/form-data"> <div><input type="file"name="new_img"></div> <div><input type="submit" value="送信"></div> </form> <table> <tr> <td><\?php echo \$img; \?>"></td> </tr> </table>

php

\$tmp_file = \$_FILES\['new_img'\]\['tmp_name'\]; \$file_name = 'img/' \. \$_FILES\['new_img'\]\['name'\]; //同名ファイルがアップロードされた場合の関数定義 function unique_filename\(\$org_path, \$num=0\){ if\( \$num > 0\){ \$info = pathinfo\(\$org_path\); \$path = \$info\['dirname'\] \. "/" \. \$info\['filename'\] \. "_" \. \$num; if\(isset\(\$info\['extension'\]\)\) \$path \.= "\." \. \$info\['extension'\]; } else { \$path = \$org_path; } if\(file_exists\(\$path\)\){ \$num\+\+; return unique_filename\(\$org_path, \$num\); }else { return \$path; } } if \(is_uploaded_file\(\$tmp_file\) === TRUE\){ if \( move_uploaded_file\(\$tmp_file,unique_filename\(\$file_name \)\) === TRUE\){//同名ファイルがアップロードされた場合の処理 //MIMEタイプ指定 \$fp = finfo_open\(FILEINFO_MIME_TYPE\); \$mime_type = finfo_file\(\$fp, \$file_name\); finfo_close\(\$fp\); \$img = file_get_contents\(\$faile_name\); header\('Content-Type: '\.\$mime_type\); if\(strpos\(\$mime_type,'jpeg'\)||strpos\(\$mime_type,'jpg'\)||strpos\(\$mime_type,'png'\) === FALSE\){ unset\(\$file_name\); \$error_msg\[\] = 'ファイル形式が異なります。画像ファイルはJPEG又はPNGのみ利用可能です。'; } } else { \$err_msg\[\] = 'ファイルがアップロードできません'; } } else { \$err_msg\[\] = 'ファイルが選択されていません'; }

自分としましては、「$img = file_get_contents($faile_name);」「header('Content-Type: '.$mime_type);」
ここの「$img」にファイルのパスを読み込み、header関数にてmime_typeを指定しhtmlにて、echoで出力すれば良いのではないかと思っていたのですが、エラーが発生し表示できていない状態です...
どなたか教えて下さる方いましたら、ご教授下さい...

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

ファイル

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

PHP

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