[php] upload

Fermé
Pascale - 1 avril 2005 à 10:06
 lantno - 28 avril 2005 à 17:21
Bonjour,

Pourquoi le script permettant le "upload" de fichier (pdf ou rtf) fonctionne de temps en temps ?

Ci dessous un extrait du code

Code:
$repertoireDestination = "/home/bcdi/";
$nomDestination = $_FILES["monfichier"]["name"];


$extension = substr($nomDestination, strrpos($nomDestination, "."));
$nomDestination =$nom_stagiaire.'_'.$prenom_stagiaire.'_2005'.$extension;

if ((eregi('rtf', $extension)) or (eregi('pdf', $extension)) )
{
if (is_uploaded_file($_FILES["monfichier"]["tmp_name"]))
{

// Déplacement du fichier du répertoire temporaire vers le répertoire courant d'où est exécuté le script.
if (move_uploaded_file($_FILES["monfichier"]["tmp_name"], "$repertoireDestination".$nomDestination))
{

$result=mysql_query("select * from site where EDITEUR_E = '$editeur_e'") or die ("Erreur lecture site");

if ($row=mysql_fetch_array($result))
{

$adresse = $row['ADRESSE_E'];
$code_postal = $row[CODE_POSTAL_E];
$ville= $row[VILLE_E];
}

$result2=mysql_query("select * from memoire");
$total=mysql_num_rows($result2);

$nb_plus = $total++;

$identite= date("Ymd").$nb_plus;


$result1=mysql_query("insert into memoire values ('','$nom_stagiaire','$prenom_stagiaire','$datenaiss','Notice générale','Ressource électronique','Fre','$titre_memoire','$titre_memoire','$titre_memoire','Ressource électronique','Ressource électronique','$editeur_e','$editeur_e','$adresse','$code_postal','$ville','France','Non','2005','$date_saisie','$date_saisie','Non','$identite','$auteur1','$auteur2','$auteur3','$auteur1','$identite','$date_saisie','$date_saisie','2005','$nom_stagiaire','$nom_stagiaire','texte','$nom_fichier','Non','$select_nature','$resume','$mot1','$mot2','$mot3','$mot4','$mot5','$mot6','$mot7','$mot8','$mot9','$mot10','$libelle','$extension')") or die ("Erreur écriture memoire");


mysql_close();
echo "Le fichier ".$_FILES["monfichier"]["name"]." de taille : ".$_FILES["monfichier"]["size"]." a été copié dans le répertoire <br />";
echo "Il a été renommé sous le nom " .$nomDestination ."<br />";
}

}
else
{
echo "Le fichier ".$_FILES["monfichier"]["name"]. " n'a pas été téléchargé<br />".
"Peut-être dépassait-il la limite des 5<br />";
}
}
else
{
echo "Le fichier n'est pas au format attendu <br />";
echo "Votre mémoire doit être enregistré au format pdf ou rtf <br />";
}



}
else
{
echo "Veuillez retourner à l'écran précédent, tous les champs n'ont pas été saisis";
}

(...)

En fait, il semblerait que si le fichier est un .rtf, le upload fonctionne tout le temps.
Par contre, quand c'est un pdf (taille <5mo) on a :
- soit ça marche
- soit message 'le fichier ne contient aucune donnée
- soit message "impossible d'afficher a page"

Je viens de modifier des paramètres dans php.ini .... pas mieux

Si vous pouviez m'aider ça serait sympa. Je ne sais plus où chercher l'erreur .... Merci
Pascale
A voir également:

4 réponses

Bonjour,

voici qlq précisions :

Il semblerait que le upload ne fonctionne que pour des fichiers < 550 qu'ils soient en pdf ou rtf.

Pourtant, dans le formulaire de saisie le champ est avec Max_files_size = 55000000 et au niveau de php.ini il est à 6M

Je ne vois pas où est le problème.

Pascale
0
Bonjour
Peut-être le temps limite d'exécution d'un script qui par défaut est de 30 secondes.
0
j'ai exactement le même problème Mon max_file_size et le max file de mon php.ini sont bon mais des que je veux upload un fichier plus que 1 MO j'ai "Impossible d'afficher la page
La page que vous recherchez est actuellement indisponible. Le site Web rencontre peut-être des difficultés techniques, ou vous devez modifier les paramètres de votre navigateur. " le message est quasi instantané dès l'envoi du formulaire si quelqu'un à une idée....
0
aye j'ai trouvé en fait il semblerait que ça soit mon firwall qui bloquait.
Trouvé sur http://fr.php.net/features.file-upload
You can check your firewall configuration. When uploading large files, packets have to be split into fragments of varying size depending on your systems MTU (maximum transmission unit), which is typically 1500 bytes.
0