Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 17/12/2013, à 12:00

Maïtyka

move_uploaded_file() ne fonctionne pas sous Ubuntu [RESOLU]

Bonjour à tous,

J'ai un soucis plutôt gênant pour mon site.
L'upload fonctionne quand je travail sous un poste Windows en local,
mais pas sur mon serveur Ubuntu.

J'ai essayé d'indiquer le chemin de destination de multiple façon mais ma fonction move_uploaded_file() retourne toujours false.

Mais droit sont en 755 sur 'var' et 777 pour le reste '/www/monprojet/'

Je n'ai plus d'idées, toutes les votre sont les bienvenues.

<?php
//on se connecte à la base
include('connexion_bdd.php');

//On selection le repertoire d'upload
$query = "SELECT * FROM repertoires WHERE id='$rep'"; 
$result = mysql_query($query) or die('Erreur SQL !<br/>'.$req.'<br/>'.mysql_error()); //<- envoie la requete -> 

	//On recupere le resultat
	$ligne = mysql_fetch_assoc($result);
	$cat=$ligne['categorie'];
	$unite=$ligne['unite'];

// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
	//on recupere le nom du fichier
	$nom_fichier=basename($_FILES['monfichier']['name']);
	
	// Testons si le fichier n'est pas trop gros (inferieur a 8Mo)
    if ($_FILES['monfichier']['size'] <= 8388608)
    {
	
		//On remplace les lettres accentutées par les non accentuées dans $fichier.
		//Et on récupère le résultat dans fichier
		$nom_fichier = strtr($nom_fichier,
		'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
		'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
 
		//Remplace tout ce qui n'est pas une lettre non accentuées ou un chiffre
		//dans $fichier par un tiret "-" et qui place le résultat dans $fichier.
		$nom_fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $nom_fichier);

		$chemin=$_SERVER['DOCUMENT_ROOT'].'/intranet/'.$cat.'/'.$unite.'/'.$nom_fichier;
		// On peut valider le fichier et le stocker définitivement
		$envoi=move_uploaded_file($_FILES['monfichier']['tmp_name'],$chemin);
		if ($envoi)
		{
			echo "L'envoi a bien été effectué !";
		}
		else
		{
		echo $chemin;
			echo '<br/>Ca pas marche';
		}
	}
	else
	{
		echo "Fichier trop volumineux";
	}
}
else
{
echo 'Veuillez selectionner un fichier';
}
?>

Merci d'avance de vos réponse.

Dernière modification par Maïtyka (Le 17/12/2013, à 16:04)

Hors ligne

#2 Le 17/12/2013, à 13:27

Epehj

Re : move_uploaded_file() ne fonctionne pas sous Ubuntu [RESOLU]

Salut,

C'est pas sur $_SERVER['DOCUMENT_ROOT'].'/intranet/'.$cat.'/'.$unite.'/ que tu devrais changer les permissions ?


Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie

Hors ligne

#3 Le 17/12/2013, à 15:22

Maïtyka

Re : move_uploaded_file() ne fonctionne pas sous Ubuntu [RESOLU]

$_SERVER['DOCUMENT_ROOT'] = La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.
Soit  '/var/www/'.
C'est donc bien la que j'ai mis les droits.

Dernière modification par Maïtyka (Le 17/12/2013, à 17:11)

Hors ligne

#4 Le 17/12/2013, à 15:44

Epehj

Re : move_uploaded_file() ne fonctionne pas sous Ubuntu [RESOLU]

Et tu as bien mis tes droits en récursif ?
Si tu n'as chmodé que /var/etc, ça peut être une raison.

Tu peux faire un retour de

ls -l /var/etc 

?

Bon je fais peut être complètement fausse route, mais les problèmes liés à cette fonction ont l'air de souvent être dû à une erreur de permission


Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie

Hors ligne

#5 Le 17/12/2013, à 16:02

Maïtyka

Re : move_uploaded_file() ne fonctionne pas sous Ubuntu [RESOLU]

C'était tout à fait ça.
J'ai pas donné mes droits en récursifs.
Quel boulet je suis. roll
Mon collègue ma fait exactement la même réflexion que toi.

Merci pour tout. big_smile

Hors ligne

Haut de page ↑