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
A voir également:

5 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
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 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
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