2017-07-25 12 views
1

(これが繰り返されると私は一日前ですのでご容赦ください) ウェブサイトのアップロード/ディレクトリに画像をアップロードするコードがあります。これは、下記のindex.htmlとupload.phpを通して行われ、元々PHP - Upload picture and display on pageから見られます。PHPとJS - アップロード画像が表示されない

ただし、必要に応じてHTMLページ自体に画像を表示することはできません。そこにはimageholderのないupload.phpにリダイレクトされます。どのようにそれを行うに役立つ?私のindex.htmlはうまくいくので、私のPHP設定はうまくいくはずです。私はthisthisthisのすべてをインストールしてセットアップしました。

index.htmlを

<!DOCTYPE html> 
<html> 
<head> 
<script language= "javascript" type="text/javascript"> 
function juploadstop(result){ 
    console.log(typeof result); 
    if(result==0){ 
     $(".imageholder").html(""); 
    } 
    else if(result!=0){ 
     $(".imageholder").html("<img src='"+result+"'>"); 
    } 
} 
</script> 
</head> 

<body> 
<form action="upload.php" method="post" enctype="multipart/form-data"> 
    <div class="imageholder"> <!-- a gif image to show that the process wasn't finished --> 
    </div> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 
</body> 
</html> 

<?php 
$target_dir = "uploads/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$result = $target_file; 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    if($check !== false) { 
     $uploadOk = 1; 
    } else { 
     $uploadOk = 0; 
    } 
} 

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg") { 
    // echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 


if ($uploadOk == 0) { 
    // echo "Sorry, your file was not uploaded."; 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     $result = $target_file; 
    } else { 
     $result = 0; 
    } 
} 
?> 

<script language="javascript" type="text/javascript"> 
    window.top.window.juploadstop(<?php echo $result; ?>); 
</script> 

編集1 upload.php私が最後まで

header("Location: index.html"); 

を添加しました私のPHPコードのphpセクションが終了する前に、それはもはやリダイレクトされません。ただし、画像は表示されません。

答えて

1

これはJavaスクリプトを使用して行うことができますが、その必要はありません。最も簡単な方法は、PHPの数行でです。ファイルの名前をindex.htmlからindex.phpに変更して、そのファイルでPHPを使用することができます。あなたは、フォームを閉じた後、あなたののindex.phpファイルで

は、このコードを追加します。

<br> 
HERE ARE YOUR UPLOADED IMAGES: 
<br> 
<?php 
$dirname = "uploads/"; 

$images = glob($dirname."*{jpg,png,gif}", GLOB_BRACE); 

foreach($images as $image) { 
    echo '<img src="'.$image.'" /><br />'; 
} 
?> 

<br> 

このラインは、アップロードフォルダからすべての画像を表示します。

ですから、このようなものがあります:あなたはまた、最後に、あなたのupload.phpファイルに追加する必要があります

<!DOCTYPE html> 
<html> 
<head> 
<script language= "javascript" type="text/javascript"> 
function juploadstop(result){ 
    console.log(typeof result); 
    if(result==0){ 
     $(".imageholder").html(""); 
    } 
    else if(result!=0){ 
     $(".imageholder").html("<img src='"+result+"'>"); 
    } 
} 
</script> 
</head> 

<body> 
<form action="upload.php" method="post" enctype="multipart/form-data"> 
    <div class="imageholder"> <!-- a gif image to show that the process wasn't finished --> 
    </div> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 
<br> 
HERE ARE YOUR UPLOADED IMAGES: 
<br> 
<?php 
$dirname = "uploads/"; 

$images = glob($dirname."*{jpg,png,gif}", GLOB_BRACE); 

foreach($images as $image) { 
    echo '<img src="'.$image.'" /><br />'; 
} 
?> 

<br> 

</body> 
</html> 

を:

header('Location: index.php'); 

は前にこれを追加してくださいあなたはPHPタグをそこに閉じます。この行はあなたのインデックスページにあなたをリダイレクトします。

希望はあなたに役立ちます。

0

upload.phpからindex.htmlページのJSに含まれている "juploadstop"関数を呼び出そうとしているように見えます。それはうまくいかないでしょう。 写真をアップロードして表示したいだけであれば、必ずしもJSを使用する必要はありません。ターゲットファイルに固定名を使用し、JSを削除し、index.html <img src="uploads/yourimage.jpg">に単純なイメージタグを入れ、PHPスクリプトの最後にheader("Location: index.html");を入れて、アップロードが処理されるとユーザに指示が送られますインデックスページに戻ります。

+0

ありがとうございました! _upload.php_ からjuploadstopを呼び出そうとしていますが、アップロードするファイルはターゲットファイル名がユーザーによって異なります。処理時に固定名を付けることはできますか?はいの場合、どうですか? – Bhavna

関連する問題