2016-10-03 8 views
0

Ich versuche, Bilder in die entsprechenden Ordner mit PHP hochzuladen. . Es gibt insgesamt 6 Ordner und 2 Ordner haben Unterordner. Ich habe ein Dropdown-Menü erstellt, das eine Liste von Ordnern und Unterordnern in einem Formular enthält, und bei Auswahl eines bestimmten Ordners kann ein Bild in den ausgewählten Ordner hochgeladen werden. Aber wenn ich einen Unterordner auswähle, wird das Bild nicht hochgeladen.Bilder können nicht in Unterordner hochgeladen werden

Unten ist der folgende Code zum Hochladen. Und here is the link für Dropdowns (Ordner und Unterordner mit HTML).

if(isset($_POST["submit"])) { 

$target_dir = "images/website/". $_POST["path"]."/"; 
} 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$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) { 
    echo '<script language="javascript">'; 
    echo 'alert("File is an image - " . $check["mime"] . ".")'; 
    echo '</script>'; 
    $uploadOk = 1; 
} else { 
    echo "File is not an image."; 
    $uploadOk = 0; 
} 
} 
// Check if file already exists 
if (file_exists($target_file)) { 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
window.alert('Sorry ! Image already exists!') 
window.location.href='upload.php'; 
</SCRIPT>"); 
$uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 5000000) { 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
window.alert('Sorry ! Image file size is too large.') 
window.location.href='upload.php'; 
</SCRIPT>"); 
$uploadOk = 0; 
} 
// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif" && $imageFileType != "JPG" && $imageFileType != "PNG" && $imageFileType != "JPEG" && $imageFileType != "GIF") { 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
window.alert('Sorry ! only JPG, JPEG, PNG & GIF files are allowed') 
window.location.href='upload.php'; 
</SCRIPT>"); 
echo "."; 
$uploadOk = 0; 
} 
// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
window.alert('Sorry ! Image was not uploaded') 
window.location.href='upload.php'; 
</SCRIPT>"); 
// if everything is ok, try to upload file 
} else { 
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
    // echo '<script language="javascript">'; 
    // echo 'alert("Image has been uploaded successfully!")'; 
    // echo '</script>'; 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
window.alert('Congrats ! Image has been successfully uploaded.') 
window.location.href='upload.php'; 
</SCRIPT>"); 

    //header("Location:upload.php") ; 
    // echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
    echo ("<SCRIPT LANGUAGE='JavaScript'> 
    window.alert('Oops Sorry ! There was some error.') 
    window.location.href='upload.php'; 
    </SCRIPT>"); 

    // echo "Sorry, there was an error uploading your file."; 
    } 
    } 
    ?> 
+0

versuchen Sie es mit '$ target_dir ="/images/website/". $ _POST ["Pfad"]. "/"; ' – devpro

+0

Ich habe diesen Code bereits verwendet – HebleV

+0

@devpro Ich bin mir nicht sicher, ob ich eine Bedingung verwenden muss, um zwei verschiedene Pfade zu verwenden, einen für Ordner und andere für Unterordner. – HebleV

Antwort

0

Stellen Sie sicher, Ihr Verzeichnis und dessen Unter haben richtige Dateiberechtigungen Datei-Upload auf diesem Weg

Stellen Sie sicher, es gibt keine Einschränkungsoptionen in .htaccess-Datei auszuführen, die Datei-Upload im Unterverzeichnis beschränken wird.

+0

Bitte lesen Sie den Code und schlagen Sie eine geeignete Antwort vor. Alles, was ich brauche, ist eine Bedingung, um verschiedene Pfade für verschiedene Auswahlen auszuwählen. – HebleV

Verwandte Themen