Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/05/2007, 10h35   #1
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
Par défaut [Upload] problème incompréhensible

Bonjour,

je tente de faire des uploads mais hélas sans succès

j'ai utilisé pour faire mes tests le code trouvé sur ce site, le problème c'est que j'ai systématiquement le message "Echec de l'upload !".

pour info le dossier et les sous dossiers qui devront contenir les fichiers ont pour chmod 777

le serveur est chez 1and1.fr

je n'arrive pas à trouver de solution je n'ai comme piste que Echec de l'upload ce qui est mince.

Merci pour votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<?php
$dossier = 'fichiers_internes/';
$sous_dossier = $_POST["AJ_Type_Doc"];
$sous_dossier .= '/';
$fichier = basename($_FILES['AJ_Upload']['name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES['AJ_Upload']['tmp_name']);
$extensions = array('.txt', '.doc', '.xls', '.pdf');
$extension = strrchr($_FILES['AJ_Upload']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['AJ_Upload']['tmp_name'], $dossier .$sous_dossier. $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
 
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
 
     }
}
else
{
     echo $erreur;
}
?>
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 10h41   #2
Membre du Club
 
Inscription : juin 2002
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 44
Points : 51
Points : 51
Comme vous n'avaez pas transmis le code du formulire, Vérifiez l'attribut enctype de votre formulaire. Il doit ressembler à ça :
Code :
1
2
 
<form enctype="multipart/form-data" ...>
__________________
Merci
Have Fun !!!
Fincom
Fincom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 10h45   #3
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
Bonjour,

oui le formulaire est bien sous cette forme

Code :
1
2
 
<form enctype="multipart/form-data" ...>
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 11h04   #4
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
je viens de tester en local l'upload fonctionne sans problème. Est-ce que cela veut dire que mon hébergeur n'accepte pas les uploads ? ou dois-je changer un paramètre pour que cela fonctionne ?
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 14h59   #5
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
Bonjour,

j'ai réussi à touver cette erreur avez vous une idée ?

Warning: move_uploaded_file(fichiers_internes/ouvrage/classification.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 15h43   #6
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Bonjour,

Il y a chmod 777 aussi pour le répertoire temporaire d'upload ?
Il faudrait vérifier si il y a quelque chose dedans ...
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 15h48   #7
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
bonjour

justement je viens d'ajouter à la racine du site un répertoir "tmp" avec pour CHMOD 777, hélas toujours le même problème. Je tourne en rond avec ce problème !!!
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 16h19   #8
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
ça ressemble à une erreur dans le chemin indiqué pour le fichier
Citation:
Envoyé par xdoreau
je viens d'ajouter à la racine du site un répertoir "tmp" avec pour CHMOD 777
ok, mais est-ce que ton php.ini est bien configuré pour utiliser ce répertoire lors de l'upload ? (Voir l'option : upload_tmp_dir)
Essayes aussi la fonction is_uploaded_file() afin de savoir si le fichier a bien été uploadé (dans ce cas le problème est lors de son déplacement avec move_uploaded_file())
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 16h33   #9
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
bonjour,

je viens de voir de info.php que upload_tmp_dir a pour valeur ceci "no value". Si je ne me trompe pas il n'y a donc pas de dossier temporaire (tmp) ai-je un moyen de changer cela ? je pense que mon hébergeur 1and1 ne me donnera pas l'accès au fichier php.ini, puis-je utiliser upload_tmp_dir et si oui comment ?

merci
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 20h27   #10
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Ah, léger problème. "no value" signifie que l'hébergeur ne veut pas d'upload (ce n'est pas la valeur par défaut). Il faudrait vérifier file_uploads (on/off) avec phpinfo() ...
edit : pour l'hébergeur, c'est une option de base à 0,99/mois, un serveur privé à 9,99/mois ... ?
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 09h15   #11
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
Bonjour

file_upload est sur "on".

Je pense aussi que c'est une volonté da la part de 1and1 je vais voir avec eux ce que je peux faire pour régelr ce problème
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 10h59   #12
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
Bonjour,

après consultation de 1and1, ils me disent de faire un fichier "php.ini" avec juste les valeurs que je veux redéfinir et de la placer à la racine du site. C'est bien ! oui mais voilà un gros doute me viens !!!
Que mettre comme valeur dans upload_tmp_dir = "..." ??? dois-je juste indiquer mon dossier temporaire sous cette dorme "/tmp" ou autrement ?

si quelqu'un à une réponse je suis preneur, en attendant je vais faire un test.

Merci
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 14h53   #13
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
bonjour c'est encore moi,

pourriez vous me dire si ce script contient une ou des erreurs ??

je vous demande cela car cette histoire me rend dingue et je veux être certain que ce script fonctionne

merci pour votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
error_reporting (E_ERROR | E_WARNING | E_PARSE);
$base ='http://www.monsite.fr/mondossier/';
$dossier = 'fichiers_internes/';
$sous_dossier = $_POST['AJ_Type_Doc'];
$sous_dossier .= '/';
$fichier = basename($_FILES['AJ_Upload']['name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES['AJ_Upload']['tmp_name']);
$extensions = array('.txt', '.doc', '.xls', '.pdf');
$extension = strrchr($_FILES['AJ_Upload']['name'], '.'); 
$LIEN = $base . $dossier . $sous_dossier . $fichier;
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type txt, doc, xls, pdf';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['AJ_Upload']['tmp_name'], $dossier.$sous_dossier.$fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
 
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h38.


 
 
 
 
Partenaires

Hébergement Web