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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

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

Q&A

解決済

2回答

1225閲覧

PHP 画像アップロード

nakabou33

総合スコア17

PHP

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

0グッド

0クリップ

投稿2018/11/14 02:12

編集2018/11/14 03:06

php

1//index2.php 2 3<!DOCTYPE html> 4<html lang ="en"> 5 6<body> 7<form enctype="multipart/form-data" method="POST" action="index2.php"> 8<input type ="file" name ="userfile"> 9<input type = "submit" value="upload"> 10</form> 11</body> 12 13<?php 14 15$dir_path = './files/'; 16if (is_dir($dir_path)){ 17if(is_readable($dir_path)){ 18$ch_dir = dir($dir_path); 19 20while (false !== ($file_name = $ch_dir -> read())){ 21$ln_path = $ch_dir -> path . "/" .$file_name; 22 23if (@getimagesize($ln_path)){ 24 25 echo "<a href = \"imgview.php?d=" .urlencode(mb_convert_encoding($ln_path, "UTF-8")). "\" target = \"_blank\" >"; 26 echo "<img src = \"" .$ln_path. "\" width=\"100\"></a> "; 27 28}} 29$ch_dir -> close();} 30else{ 31echo "<p>" .htmlspecialchars($dir_path)." は読み込みが許可されていません。";}} 32else{ 33echo 'DIR 画像がないよ';} 34 35if(isset($_FILES["userfile"]) and $_FILES["userfile"]["error"]==0){ 36 37 $uploadDir = './files/'; 38 $uploadPath = $uploadDir . $_FILES['userfile']['name']; 39 40 41if(!isset($_POST['submit'])){ 42 if(move_uploaded_file( 43 $_FILES['userfile']['tmp_name'], 44 $uploadPath 45 )){ 46 echo '成功です'; 47 }else{ 48 echo '失敗です'; 49 } 50 51} 52} 53 54?> 55 56```二度送信ボタンを押さなければ選択した画像が表示されません 57 58このコードを実行して送信ボタンを押したと同時に選択した画像を一覧に表示するにはどうすればよいのでしょうか

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

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

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

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

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

guest

回答2

0

ベストアンサー

質問で上げられているコードの、if(isset($_FILES["userfile"]) and $_FILES["userfile"]["error"]==0){ }の部分を先に処理するように上に持っていけば良いのではないでしょうか?」

php

1<!DOCTYPE html> 2<html lang ="en"> 3 4<body> 5<form enctype="multipart/form-data" method="POST" action="index2.php"> 6<input type ="file" name ="userfile"> 7<input type = "submit" value="upload"> 8</form> 9</body> 10 11<?php 12if(isset($_FILES["userfile"]) and $_FILES["userfile"]["error"]==0){ 13 14 $uploadDir = './files/'; 15 $uploadPath = $uploadDir . $_FILES['userfile']['name']; 16 17 18if(!isset($_POST['submit'])){ 19 if(move_uploaded_file( 20 $_FILES['userfile']['tmp_name'], 21 $uploadPath 22 )){ 23 echo '成功です'; 24 }else{ 25 echo '失敗です'; 26 } 27 28} 29} 30 31echo "<br />\n"; 32 33$dir_path = './files/'; 34if (is_dir($dir_path)){ 35if(is_readable($dir_path)){ 36$ch_dir = dir($dir_path); 37 38while (false !== ($file_name = $ch_dir -> read())){ 39$ln_path = $ch_dir -> path . "/" .$file_name; 40 41if (@getimagesize($ln_path)){ 42 43 echo "<a href = \"imgview.php?d=" .urlencode(mb_convert_encoding($ln_path, "UTF-8")). "\" target = \"_blank\" >"; 44 echo "<img src = \"" .$ln_path. "\" width=\"100\"></a> "; 45 46}} 47$ch_dir -> close();} 48else{ 49echo "<p>" .htmlspecialchars($dir_path)." は読み込みが許可されていません。";}} 50else{ 51echo 'DIR 画像がないよ';} 52 53?>

こういうことではなくて?

投稿2018/11/16 09:26

colling

総合スコア798

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

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

0

実行がサブミットであれば遷移後のページでアップロードされたファイルリストを表示するだけ
ただし多バイト文字(日本語)ファイル名など利用していると参照できない可能性があるので
運用側で調整が必要

投稿2018/11/14 02:21

yambejp

総合スコア114843

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問