2017-07-25 4 views
1

(Ich bin ein Tag alt zu php also bitte entschuldigen Sie, wenn dies wiederholt wird) Ich habe den Code, Bilder in meine Uploads/Verzeichnis in der Website-Ordner hochladen. Dies geschieht über index.html und upload.php, die unten aufgeführt sind und ursprünglich von PHP - Upload picture and display on page stammen.PHP und JS - Bild hochladen nicht angezeigt

Ich kann jedoch nicht die Bilder auf der HTML-Seite selbst wie erforderlich anzeigen. Es wird zu upload.php ohne Bildhalter weitergeleitet. Irgendwelche Hilfe wie das geht? Mein index.html funktioniert gut, also denke ich, meine php-Einstellungen sollten in Ordnung sein. Ich folgte this, this und this, um alles zu installieren und einzurichten.

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> 

und upload.php

<?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> 

Edit 1 Ich habe

header("Location: index.html"); 

bis zum Ende von meinem PHP-Code vor dem PHP-Abschnitt abgeschlossen ist, und es nicht mehr umleiten. Das Bild wird jedoch weiterhin nicht angezeigt.

Antwort

1

Sie können das mit Java-Skript tun, aber das ist nicht nötig. Der einfachste Weg ist mit wenigen PHP-Zeilen. Ändern Sie den Namen Ihrer Datei von index.html in index.php, so dass Sie PHP in dieser Datei verwenden können.

In Ihrem index.php Datei diesen Code hinzufügen, nachdem Sie das Formular schließen:

<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> 

Diese Linien alle Bilder von Uploads Ordner zeigen.

So werden Sie etwas wie dieses:

<!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> 

Sie auch in Ihrer upload.php Datei am Ende hinzufügen müssen:

header('Location: index.php'); 

Stellen Sie sicher, dies zuzugeben, bevor Sie schließen das PHP-Tag dort. Diese Zeile leitet Sie immer auf Ihrer Indexseite weiter.

Hoffe, das ist hilfreich für Sie!

0

Sieht für mich so aus, als ob Sie versuchen, Ihre "juploadstop" -Funktion, die in Ihrem JS auf der Seite index.html enthalten ist, aus Ihrer upload.php aufzurufen. Das wird nicht funktionieren. Wenn Sie nur ein Bild hochladen und anzeigen möchten, müssen Sie nicht unbedingt JS verwenden. Verwenden Sie einfach einen festen Namen für Ihre Zieldatei, entfernen Sie Ihre JS, setzen Sie ein einfaches Bild-Tag in Ihre index.html <img src="uploads/yourimage.jpg"> und setzen Sie dann eine header("Location: index.html"); am Ende Ihres PHP-Skript, so wird der Benutzer nach der Verarbeitung des Uploads weitergeleitet werden Zurück zur Indexseite.

+0

Vielen Dank für Hilfe! Ich versuche juploadstop aus _upload.php_ aufrufen und die Datei, die hochgeladen werden soll, damit der Name der Zieldatei, hängt von dem Benutzer ab.Kann ich ihm bei der Verarbeitung einen festen Namen geben? Wenn ja, wie? – Bhavna