Upload de fichier

Résolu/Fermé
phpdid
Messages postés
4
Date d'inscription
mercredi 26 février 2014
Statut
Membre
Dernière intervention
27 février 2014
- Modifié par phpdid le 26/02/2014 à 10:29
phpdid
Messages postés
4
Date d'inscription
mercredi 26 février 2014
Statut
Membre
Dernière intervention
27 février 2014
- 27 févr. 2014 à 08:43
Bonjour

Voici un problème incompréhensible mais peu être à force regarder je ne vois plus.
Un script d'upload de fichier vers Mysql. Il fonctionne pour les fichiers de - de 10 Mo. Au dessus il ne marchait pas, jusqu'à ce que je récupère l'erreur pour modifier le php.ini. depuis, lorsque j'ai modifier mon code pour récupérer tous les codes erreurs et ne plus galérer - je n'ai aucun retour si mon fichier dépasse 10 Mo..La fonction n'est même pas lancé.....En dessous ça fonctionne.


?php
function transfert ()
{
$ret = false;
$img_blob = '';
$img_taille = 0;
$img_type = '';
$img_nom = '';
$taille_max = 10485760;
$ret = is_uploaded_file($_FILES['fic']['tmp_name']);
print_r($_FILES);
if ( !$ret )
{
echo " Erreur de transfert : ";
return false;
}
else
{
// Le fichier a bien ete recu
$img_taille = $_FILES['fic']['size'];
if ( $img_taille > $taille_max )
{
echo "Fichier Trop gros !";
return false;
}
$img_type = $_FILES['fic']['type'];
$img_nom = $_FILES['fic']['name'];
$hote = 'localhost';
$base = '*****';
$user = '******';
$pass = '*********';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
$ret = mysql_select_db ($base) or die (mysql_error ());
$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
$req = "UPDATE images SET Map='".$img_nom."',Taille='".$img_taille."',Type='".$img_type."',Data='".addslashes($img_blob)."' where id=".$_GET["id"];
$ret = mysql_query ($req) or die (mysql_error ());
echo "<script type='text/javascript'>alert('Transfert OK!');</script>";
return true;

}
}
?>
<html>
<head>
<title>Stock d'images</title>
</head>
<body>
<?php
if ( isset($_FILES['fic']) )
{
transfert();
} else { $count = $count + 1; echo $count;}
?>
<h3>Envoi d'une image (Max. 10 Mo)</h3>
<br>
<br>
<FIELDSET>
<LEGEND ALIGN=CENTER>Choix de la map</LEGEND>
<form enctype="multipart/form-data" action="#" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="10485760" />
<input type="file" name="fic" />
<br>
<br>
<br>
<input type="submit" value="Envoyer" />
</form>
</FIELDSET>
<br>
<form method='post'>
<input type='button' value='Close' onclick='window.close()'>
</form>
</body>
</html>

Les valeurs php.ini
max_execution_time = 60
max_input_time = 60
post_max_size = 10M
upload_max_filesize = 10M
max_file_uploads = 20


Merci d'avance de m'avoir lu

5 réponses

Pitet
Messages postés
2814
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
30 juin 2022
537
26 févr. 2014 à 11:17
Salut,

Il faut augmenter les valeurs de post_max_size, upload_max_filesize et éventuellement memory_limit : https://www.php.net/manual/fr/ini.core.php#ini.post-max-size

Bonne journée
0
phpdid
Messages postés
4
Date d'inscription
mercredi 26 février 2014
Statut
Membre
Dernière intervention
27 février 2014

26 févr. 2014 à 11:21
Merci pour cette réponse, mais je me suis mal exprimé.
Je ne cherche pas a uploader un fichier de taille supérieur a 10 MO mais a récuperer le code erreur lorsque l'upload rencontre un problème. Mais c'est n'est pas le cas.
0
Pitet
Messages postés
2814
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
30 juin 2022
537
26 févr. 2014 à 12:10
0
phpdid
Messages postés
4
Date d'inscription
mercredi 26 février 2014
Statut
Membre
Dernière intervention
27 février 2014

26 févr. 2014 à 12:17
OUi je sais que c'est là https://www.php.net/manual/fr/features.file-upload.errors.php
Je me suis même appuyé dessus pour récuperer les code erreur mais c'est un probleme de code....Lorsque je dépasse les 10MO, la page devrait afficher " Erreur de transfert : " dans un premier temps (ensuite je mettrais les code erreurs......Mais ce n'est pas le cas.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phpdid
Messages postés
4
Date d'inscription
mercredi 26 février 2014
Statut
Membre
Dernière intervention
27 février 2014

27 févr. 2014 à 08:43
Trouvé la reponse dans php.net

Dans le cas où la taille des données reçues par la méthode POST est plus grande que post_max_size, les superglobales $_POST et $_FILES seront vides.
0