upload php et connexion réinitialisée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : upload php et connexion réinitialisée

euh...edit ça doit être un probleme de serveur

par Jul073 » 14 mars 2011, 20:14

Re-bonjour à tous.
à priori le problème d'upload venait en partie du serveur... je suis retournée essayer d'uploader quelques images pour voir la limite exacte, et j'ai pu mettre sur le ftp facilement une vingtaine d'images allant de 10ko à 100ko -

mon code est quand même certainement optimisable, alors si certains ont le temps de jeter un coup d'oeil rapide et de donner quelques conseils ce serait top! merci

je vais de ce pas continuer d'uploader, et j'irai regarder de plus pres les classes & objets php

Re: upload php et connexion réinitialisée

par Jul073 » 14 mars 2011, 19:53

Merci AB, je vais aller voir ça

Re: upload php et connexion réinitialisée

par AB » 14 mars 2011, 19:50

Pour éviter de répondre aux questions (casse tête) d'upload de fichier j'ai fait ce tuto et cette classe qui répond à la plupart des besoins. Tu pourrais essayer la classe pour voir si elle fonctionne correctement sur le serveur ce qui te permettras de mieux cibler tes erreurs.

upload php et connexion réinitialisée

par Jul073 » 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 :
   <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&eacute;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!