Erreur PHP - le Téléchargement d'un fichier
Je suis en train d'écrire un peu de PHP pour envoyer un fichier dans un dossier sur mon serveur. Voici ce que j'ai:
<?php
if ( !empty($_FILES['file']['tmp_name']) ) {
move_uploaded_file($_FILES['file']['tmp_name'], './' . $_FILES['file']['name']);
header('Location: http://www.mywebsite.com/dump/');
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Dump Upload</title>
</head>
<body>
<h1>Upload a File</h1>
<form action="upload.php" enctype="multipart/form-data" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000" />
Select the File:<br /><input type="file" name="file" /><br />
<input type="submit" value="Upload" />
</form>
</body>
</html>
J'obtiens ces erreurs:
Warning: move_uploaded_file(./test.txt) [function.move-uploaded-file]: failed to open stream: Permission denied in E:\inetpub\vhosts\mywebsite.com\httpdocs\dump\upload.php sur la ligne 3
Warning: move_uploaded_file() [function.move-uploaded-file]: Impossible de déplacer 'C:\WINDOWS\Temp\phpA30E.tmp' à './test.txt " dans E:\inetpub\vhosts\mywebsite.com\httpdocs\dump\upload.php sur la ligne 3
Warning: Cannot modify header information - headers already sent by (output started at E:\inetpub\vhosts\mywebsite.com\httpdocs\dump\upload.php:3) E:\inetpub\vhosts\mywebsite.com\httpdocs\dump\upload.php sur la ligne 4
La version de PHP 4.4.7
IIS en cours d'exécution sur une machine Windows. Ce fichier/dossier a 777 autorisations.
Des idées?
OriginalL'auteur Steve Willard | 2008-08-06
Vous devez vous connecter pour publier un commentaire.
Que c'est Windows, il n'y a pas de véritable 777. Si vous utilisez chmod, vérifiez le Windows commentaires.
Vérifier que le Compte IIS peuvent accéder (lire, écrire, modifier), ces deux dossiers:
OriginalL'auteur Michael Stum
OMG
Ne pas le faire.
$_FILES['file']['name']
pourrait être../../../../boot.ini
ou un certain nombre de mauvaises choses. Vous ne devriez jamais faire confiance à ce nom. Vous devez renommer le fichier en quelque chose d'autre et de les associer le nom d'origine avec votre nom aléatoire. Au minimum l'utilisationbasename($_FILES['file']['name'])
.OriginalL'auteur jmucchiello
Essayez d'ajouter un chemin d'accès. Le code suivant fonctionne pour moi:
OriginalL'auteur Kevin
Warning: move_uploaded_file() [function.move-uploaded-file]: Impossible de déplacer 'C:\WINDOWS\Temp\phpA30E.tmp' à './people.xml " dans E:\inetpub\vhosts\mywebsite.com\httpdocs\dump\upload.php sur la ligne 3
est la ligne importante il est dit que vous ne pouvez pas mettre le fichier où vous le souhaitez et cela signifie normalement un problème d'autorisations
vérifier le processus de l'exécution de l'application (normalement les serveurs processus de php) a le droit d'écrire un fichier.
EDIT:
accrocher un peu
J'ai sauté le pistolet un peu, c'est le chemin du fichier dans la première ligne correcte?
OriginalL'auteur sparkes
Un autre pense à observer est de votre séparateur de répertoire, vous êtes à l'aide de /dans une zone de Windows..
OriginalL'auteur rupert0
Ajouter l'IIS de l'utilisateur dans le "décharger" les dossiers de sécurité des permissions de groupe, et de lui donner accès en lecture/écriture.
OriginalL'auteur sameer
Créer un dossier nommé "images" avec l'autorisation de dossier
777
OriginalL'auteur Soumya Roy