Upload de fichier sur un serveur VPS

Petit nouveau ! | 5 Messages

31 juil. 2016, 17:38

Bonjour,

Je suis actuellement sous VPS (Debian 7) linux. J'y ai installé mon propre jeu en ligne et après avoir installé un certificat SSL, j'ai du mettre toutes les images et toutes les ressources utilisées sous mon propre serveur. J'utilise un script pour cela me permettant d'uploader des images dans le fichier /uploads/ de mon serveur:
<?php
                	$upload = protect_field(filter_input(INPUT_POST, 'upload'));

				    if($upload){
				        $content_dir = ''.$site_url.'/uploads/';
				        $tmp_file = $_FILES['fichier']['tmp_name'];

				        if(!is_uploaded_file($tmp_file)){
				            exit('<div class="alert alert-danger" role="alert"><b>ERREUR:</b> Le fichier sélectionné est introuvable.</div>');
				        }

				        $type_file = $_FILES['fichier']['type'];

				        if(!strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png')){
				            exit('<div class="alert alert-danger" role="alert"><b>ERREUR:</b> Le fichier sélectionné n\'est pas une image.</div>');
				        }

				        $name_file = $_FILES['fichier']['name'];

				        if(!move_uploaded_file($tmp_file, $content_dir . $name_file)){
				            exit('<div class="alert alert-danger" role="alert"><b>ERREUR:</b> Impossible de copier le fichier dans la gallerie.</div>');
				        }

				        echo '<div class="alert alert-success" role="alert"><b>INFORMATIONS:</b> Le fichier a été ajouté à la gallerie. Veuillez patienter...</div>';
				    }
				?>
				<form method="post" action="">
					<input type="file" name="fichier" size="30">
					<div class="spacer"></div>
					<input type="submit" name="upload" value="Uploader ce fichier">
				</form>
Est-ce que le problème vient de mon script (vérifié et revérifié) ou est-ce qu'il s'agirait plutôt d'une petite option à activer sous Debian ? Si oui, laquelle ? En vous remerciant par avance !

Cordialement

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 juil. 2016, 20:10

Je crois que tu as oublié d'indiquer le problème ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

31 juil. 2016, 20:27

Bien vu, je ne m'en était même pas rendu compte.. #-o

En fait, le souci est que quand je veut uploader un fichier, le script me renvoie une erreur "<div class="alert alert-danger" role="alert"><b>ERREUR:</b> Impossible de copier le fichier dans la gallerie.</div>", donc l'upload ne peut pas se faire sur le serveur, d'où le petit paragraphe précédent:

Est-ce que le problème vient de mon script (vérifié et revérifié) ou est-ce qu'il s'agirait plutôt d'une petite option à activer sous Debian ? Si oui, laquelle ? En vous remerciant par avance !

Excusez-moi pour l'étourderie, et merci par avance encore une fois ! :-)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 juil. 2016, 20:38

Ton message d'erreur est généré par :
if(!move_uploaded_file($tmp_file, $content_dir . $name_file)){
     exit('<div class="alert alert-danger" role="alert"><b>ERREUR:</b> Impossible de copier le fichier dans la gallerie.</div>');
}
Donc il faut que tu cherches pourquoi move_uploaded_file() échoue.
La doc donne deux possibilités :
http://php.net/manual/fr/function.move- ... d-file.php
Si tu regarde les logs PHP de ton serveur, tu sauras exactement quel est le souci.
Quand tout le reste a échoué, lisez le mode d'emploi...