2017-02-07 7 views
0

Je dois créer une page Web simple par laquelle vous pouvez télécharger un fichier image qui va vers un répertoire du serveur qui a été créé précédemment.Les fichiers ne sont pas téléchargés via PHP

Voici le code pour le fichier index.php:

<!DOCTYPE html> 
<html> 
<body> 

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 

</body> 
</html> 

Voici le code pour le upload.php:

<?php 
$target_dir = "uploads/"; 
$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 "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else { 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
} 
?> 

Le code est hébergé sur un serveur d'hébergement gratuit (pas payé un) et j'ai créé un répertoire appelé 'uploads' dans le même sous-répertoire où se trouvent les deux scripts. Dans les paramètres php, le téléchargement semble être activé. L'index.php s'affiche très bien, je sélectionne une image et clique sur upload, il charge une seconde puis affiche 'File is an image - image/gif'. Toutefois, lorsque je suis arrivé au répertoire de téléchargement, il n'y a pas un seul fichier.

Quel pourrait être le problème? Merci d'avance.

+0

où est le code de téléchargement? vous vérifiez juste l'extension de fichier! –

+0

À quel moment déplacez-vous/copiez-vous les fichiers? cela devrait être utile http://php.net/manual/fr/features.file-upload.post-method.php – xlordt

+0

@Arsalan Mithani il télécharge le fichier quand il le soumet, mais parce qu'il n'a pas utilisé le ' Fonction move_uploaded_file' le fichier temporaire est supprimé du serveur car il expire peu de temps après la soumission de la page. – Kaboom

Répondre

4

Vous ne vous déplacez pas le fichier sur votre serveur après avoir téléchargé le fichier temp il est supprimé

if ($uploadOk == 0) { 
    echo "Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
+0

Merci! Ça a marché. – mynex

+0

Vous pouvez également utiliser une vérification d'extension de fichier avec un tableau de types de fichiers autorisés pour empêcher les utilisateurs de télécharger des éléments qu'ils ne souhaitent pas sur votre serveur. Par exemple. un script php qui efface tout votre site ou répertoire. Juste un heads-up :) – Kaboom

+0

Le tutoriel que je suis également suivi a couvert cela, donc pas de soucis :) Merci pour l'avertissement! – mynex