php d'upload de fichier avertissement d'erreur de move_uploaded_file failed to open stream permission denied in
Voici les deux erreurs
Warning: move_uploaded_file(/uploads53e866b24977d1.48375376.pdf): failed to open stream: Permission denied in C:\xampp\htdocs\file_upload\upload.php sur la ligne 28,
Warning: move_uploaded_file(): Impossible de déplacer 'C:\xampp\tmp\php7D69.tmp' à '/uploads53e866b24977d1.48375376.pdf " dans C:\xampp\htdocs\file_upload\upload.php sur la ligne 28,
Voici mon code HTML
<form method="POST" action="upload.php" enctype="multipart/form-data">
<label for="">Upload Your Cv</label><input type="file" name="file">
<input type="submit" value="upload">
</form>
Voici mon PHP
if (isset($_FILES['file'])) {
$file = $_FILES['file'];
//print_r($file); just checking File properties
//File Properties
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$fiel_size = $file['size'];
$file_error = $file['error'];
//Working With File Extension
$file_ext = explode('.', $file_name);
$file_fname = explode('.', $file_name);
$file_fname = strtolower(current($file_fname));
$file_ext = strtolower(end($file_ext));
$allowed = array('txt','pdf','doc');
if (in_array($file_ext,$allowed)) {
if ($file_error === 0) {
if ($fiel_size <= 5000000) {
//$file_name_new = $file_fname . uniqid('',true) . '.' . $file_ext;
$file_name_new = uniqid('',true) . '.' . $file_ext;
$file_destination = '/uploads' . $file_name_new;
//echo $file_destination;
if (move_uploaded_file($file_tmp, $file_destination)) {
echo "Cv uploaded";
}
}
}
}
}
Vous devez vous connecter pour publier un commentaire.
J'ai essayé le même code et cela fonctionne pour moi. J'ai fait quelques modifications pour vous.
Après que vous n'avez pas besoin de rediriger la page; au lieu de cela, vous pouvez utiliser ce, au-dessous de la
</form>
Noter que le dossier de téléchargement doit être dans le même répertoire que celui où vous stockez le fichier.
Probablement SELinux n'a bloquer le fichier d'être écrit. Si c'est le cas, alors vous devriez changer le contexte du fichier à httpd_sys_rw_content_t ce qui signifie qu'il sera tourné à une lecture et d'écriture des répertoires et des fichiers utilisés par Apache.
Assigner à des répertoires ou les fichiers peuvent être créés ou modifiés par votre application, ou l'affecter à des fichiers de répertoire pour permettre à votre application de les modifier.
Chemin d'accès au répertoire devrait être -
uploads/
si il est présent dans le même répertoire que votre fichier php est et assurez-vous que ce répertoire a777
autorisationJ'ai eu le même problème et ont trouvé la solution à cette erreur, il est à l'intérieur de la
move_uploaded_file($file_tmp, $file_destination)
ajouter le suivant
Il s'avère que vous avez besoin du chemin complet avec une certaine configuration, j'utilise XAMPP et avait le même problème. Après avoir joué pendant un certain temps, j'ai décidé de concaténer la racine du répertoire de travail et cela a fonctionné très bien.
getcwd();
fonction est de travailler dans mon cas lorsque l'on travaille en local avec XAMPP sous Windows 7 ☺