upload php et connexion réinitialisée
Posté : 14 mars 2011, 19:24
Bonjour,
Je suis actuellement en train de faire la base d'administration d'un site.
Je pensais avoir correctement fait le formulaire d'upload, puisque en local sous MAMP tout allait bien :
- upload de la photo
- création miniatures et upload également dans un autre dossier
- écriture infos dans bdd
Mais une fois en ligne, impossible d'uploader des images de plus de 30 ko... (à 25-28 ko c'est presque instantané, et pour une image de 48 la connexion se réinitialise, plus rien ne fonctionne)
La taille étant quand même assez réduite je me pose des questions..
J'ai fait un php info mais n'y connaissant pas grand chose ça ne m'a pas énormément avancée ; à priori le passage concernant l'upload est celui-ci :
http://www.jugraphics.com/book/php-info.png
Peut-être le realpath cache trop petit? enfin je m'avance vraiment, je n'ai aucune idée de ce qui ne fonctionne pas...
Un grand merci d'avance à ceux qui prendront le temps de regarder!
Ci dessous des extraits du code php :
Je suis actuellement en train de faire la base d'administration d'un site.
Je pensais avoir correctement fait le formulaire d'upload, puisque en local sous MAMP tout allait bien :
- upload de la photo
- création miniatures et upload également dans un autre dossier
- écriture infos dans bdd
Mais une fois en ligne, impossible d'uploader des images de plus de 30 ko... (à 25-28 ko c'est presque instantané, et pour une image de 48 la connexion se réinitialise, plus rien ne fonctionne)
La taille étant quand même assez réduite je me pose des questions..
J'ai fait un php info mais n'y connaissant pas grand chose ça ne m'a pas énormément avancée ; à priori le passage concernant l'upload est celui-ci :
http://www.jugraphics.com/book/php-info.png
Peut-être le realpath cache trop petit? enfin je m'avance vraiment, je n'ai aucune idée de ce qui ne fonctionne pas...
Un grand merci d'avance à ceux qui prendront le temps de regarder!
Ci dessous des extraits du code php :
<form action= <?php echo '"./album_modifier-image.php?photo='.$num_photo.'"' ; ?> method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="400000" />
<p class="add">
Photo (jpg, max 350ko) :
<input type="file" name="photo" id="photo" />
</p>
<p class="add">
Légende :
<input type="text" name="legende" id="legende" <?php echo 'value="'.stripslashes($legende).'"' ;?> />
</p>
<p class="add">
Dossier (pour info, ne pas modifier) :
<input type="text" name="dossier" id="dossier" <?php echo 'value="'.stripslashes($dossier).'"' ;?> />
</p>
<p class="add"> <input type="submit" value="Valider modifications" /> </p>
</form>
//////////////////////////////////////////////////////////////////////////////////// Récupération des infos du formulaire
if (isset($_POST['legende']))
{
$photo = ($_FILES['photo']['name']);
$legende = $_POST['legende'] ;
$dossier = $_POST['dossier'] ;
$image_tmp=($_FILES['photo']['tmp_name']);
$image_size=($_FILES['photo']['size']);
$image_type=($_FILES['photo']['type']);
}
if($_FILES['photo']['name']) // si on a téléchargé une image
{
////////////////////////////////////////////////////////////////////////////////////Dossiers où seront sauvegardées les images
// dossier pour les grandes images
$target = ('../img/upload/'.$dossier.'/') ;
$target = $target . basename( $_FILES['photo']['name']);
// dossier pour les thumbnails
$target_T = ('../img/upload_T/'.$dossier.'/') ;
$target_T = $target_T . basename( $_FILES['photo']['name']);
//////////////////////////////////////////////////////////////////////////////////// vérifs
$extensions_valides = array( 'jpg' , 'jpeg' );
//1. strrchr renvoie l'extension avec le point (« . »).
//2. substr(chaine,1) ignore le premier caractère de chaine.
//3. strtolower met l'extension en minuscules.
$extension_upload = strtolower( substr( strrchr($_FILES['photo']['name'], '.') ,1) );
$image_sizes = getimagesize($_FILES['photo']['tmp_name']);
if ( in_array($extension_upload,$extensions_valides) )
{
$maxWidth = 680 ;
$maxHeight = 680 ;
if ($image_sizes[0] > $maxWidth OR $image_sizes[1] > $maxHeight)
{
$erreur = "Image trop grande";
}
else
{
//////////////////////////////////////////////////////////////////////////////// déplacement de l'image uploadée dans upload/...
$resultat = move_uploaded_file($_FILES['photo']['tmp_name'],$target);
if ($resultat)
{
////////////////////////////////////////////////////////////////////////////// création d'un thumbnail
$source = imagecreatefromjpeg($target);
//$taille_source = getimagesize($target);
// définir dimensions thumbnail
// Étape 1 :
$hauteur_destination = 150;
// Étape 2 :
//$reduction = ( ($nouvelle_hauteur * 100)/$taille_source[1] );
$reduction = ( ($hauteur_destination * 100) / imagesy($source) ) ;
// Étape 3 :
//$nouvelle_largeur = ( ($taille_source[0] * $reduction)/100 );
$largeur_destination = ( (imagesx($source) * $reduction) /100 ) ;
$destination = imagecreatetruecolor($largeur_destination, $hauteur_destination) ; // On crée la miniature vide
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
// création miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
// enregistrement miniature dans upload_T
//$target_T = ('../img/upload_T/'.$album. '/') ;
imagejpeg($destination, $target_T);
}
}
}
}
Merci encore!