Mon script PHP qui télécharge un fichier ne peut pas le faire dans les répertoires de niveau supérieur à lui-même.PHP Impossible de télécharger le fichier dans des répertoires supérieurs à celui-ci
Par exemple: il sauvera dans upload/
(un chemin relatif au même niveau que le script), mais pas dans /usr/local/hello/
même si les autorisations de fichiers sont exactement même. Il n'y a pas de problèmes avec la taille maximale du téléchargement, la taille maximale du message, le temps d'exécution et le mode sans échec. Quelqu'un a des pensées? Je ne peux même pas obtenir un message d'erreur - juste le $worked
ci-dessous renvoie faux quand il échoue.
<?php
// Removed the rest of the error-checking code!
$contentDir = "/usr/local/hello/"; // <-- doesn't work, chmod 0777, owner: root, group root
//$contentDir = "upload/"; <-- works, chmod 0777 owner: root, group: root
error_reporting(E_ALL);
$filename = $_FILES["filey"]["name"];
$worked = move_uploaded_file(
$_FILES["filey"]["tmp_name"],
$contentDir.$filename);
var_dump($worked);
?>
Edit: Mes réglages open_basedir, donnés par phpinfo(), sont les suivants:
Directive Local Value Master Value
open_basedir no value no value
Merci!
probablement pas le cas (j'irais pour open_basedir), mais vous ne courez pas cette chose chrootée? c'est-à-dire que vous pensez que c'est/usr/local/hello, mais php pense autrement? (parce que l'autre différence est absolue par rapport au chemin relatif) – mvds