Rechercher : dans
Par :

Uploader des images vers un site

Dernière réponse le 2 aoû 2008 à 22:38:42 diabolo67, le 12 aoû 2005 à 15:40:33 
 Signaler ce message aux modérateurs

Bonjour à tous,

Je recherche un moyen qui permettrai d'uploader des images depuis n'importe quel pc vers un fichier de mon site.

Grâce à un petit script php et une base je devrai pouvoir afficher mes photos sur le site et mettre ce dernier rapidement à jour.

Pour php pas de problème (pour l'instant) c'est du coté upload d'image que je coince un peu. Quel langage de programmation utilisé pour cela , en clair comment faire ?

Si quelqu'un à une idée merci à lui.

diabolo

Meilleures réponses pour « Uploader des images vers un site » dans :
Choisir une image et savoir l’optimiser pour son site pro VoirChoisir une image et savoir l’optimiser pour son site professionnel Pour rendre un affichage optimal des images de votre site Internet professionnel, le choix du format doit être impérativement réalisé en fonction de son utilisation. Choisir...
Google - Recherche des pages qui pointent vers un site donné VoirAvec Google il est possible de trouver les pages web qui pointent vers un site spécifique avec l’opérateur link: (utile pour les webmasters afin de connaître la cote de leur site). Syntaxe à utiliser : link:adresse_du_site Exemple :...
Le droit à l'image appliqué aux sites web VoirIntroduction au droit à l'image Selon les articles 226-1 à 226-8 du Code civil, tout individu jouit d'un droit au respect de sa vie privée ainsi que d'un droit à l'image,. En vertu de ces dispositions, la publication ou la reproduction d'une...

1

dedale82, le 12 aoû 2005 à 15:42:37

Salut,
l'upload de fichier peut se faire en php, jette un coup d'oeil la, c'est bien expliqué :
http://www.phpfrance.com/tutoriaux/index.php/2005/04/26/30-l­upload-de-fichiers
a plus

Répondre à dedale82

2

StreM, le 12 aoû 2005 à 15:46:11

$uploaddir = 'photos/';
$uploadfile = $uploaddir . basename($_FILES['Fichier']['name']);

		if (isset ($_FILES['Fichier']['tmp_name']) && $_FILES['Fichier']['tmp_name'] != "none") {  
			if (!file_exists($uploadfile)) {
				if (move_uploaded_file($_FILES['Fichier']['tmp_name'], $uploadfile)) { 
					
	  
					//creation mini
					$src_img = imagecreatefromjpeg($uploadfile);
					$size = GetImageSize($uploadfile);
					$dst_img = imagecreatetruecolor($cote_mini,$cote_mini);
					imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $cote_mini, $cote_mini, $size[0], $size[1]);
					imagejpeg($dst_img, $uploaddir."thumbs/".basename($_FILES['Fichier']['name']), 75);
					imagedestroy($src_img);
					imagedestroy($dst_img); 
					
					//redimensionnement image
					$haut = "500";
					$larg = $size[0]*$haut/$size[1];
					$src_img = imagecreatefromjpeg($uploadfile);
					$size = GetImageSize($uploadfile);
					$dst_img = imagecreatetruecolor($larg,$haut);
					imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $larg, $haut, $size[0], $size[1]);
					imagejpeg($dst_img, $uploadfile, 75);
					imagedestroy($src_img);
					imagedestroy($dst_img);
					
					echo "Fichier envoyé !</body>";
				}
			}
			else
				{echo "<font color=red>Un fichier portant le même nom existe déja.</font>";}
		}

Avec un formulaire comme ca :
<FORM ENCTYPE="multipart/form-data" ACTION="trait_parent.php" METHOD="POST"> 
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="2097152" class=input> 
Titre de la photo :   
<INPUT NAME="titre_tof" TYPE="text" class=input><br>
Fichier : 
<INPUT NAME="Fichier" TYPE="file" class=input>  (max : 2Mo)
<br><br>
<INPUT TYPE="submit" VALUE="Envoyer" name=bouton
onClick="this.form.submit();this.disabled=true;this.value=\'Envoi en cours...\'" class=input>
    </center> 
</FORM>

Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

3

diabolo67, le 12 aoû 2005 à 19:55:36

Merci pour vos réponses,

J'ai commencé par utilisé le script de php france. Mais j'ai déja un petit soucis.

Voici les deux warnings que m'adresse php :


Warning: move_uploaded_file(/brice/photos/ebay1.jpg): failed to open stream: No such file or directory in /home/diapason/www/brice/upload.php on line 33

Warning: move_uploaded_file(): Unable to move '/tmp/phpSoYyAf' to '/brice/photos/ebay1.jpg' in /home/diapason/www/brice/upload.php on line 33




Et voici le code tel que je l'ai trouvé sur le post indiqué par dedale82
<?php
if(isset($_FILES['photo']))
{
  // params
  unset($erreur);
  $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
  $taille_max = 100000;
  $dest_dossier = '/brice/photos/';
  // utilisez également des slashes sous windows : $dest_dossier  = 'd:/damien/photos/';
  // vérifications
  if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
    {    
	$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; 
	}  
  elseif( file_exists($_FILES['photo']['tmp_name'])           
         and filesize($_FILES['photo']['tmp_name']) > $taille_max)  
	{    
	$erreur = 'Votre fichier doit faire moins de 500Ko !';  
	}  
	// copie du fichier  
  if(!isset($erreur))  
    {    
	$dest_fichier = basename($_FILES['photo']['name']); 
	// formatage nom fichier   
	// enlever les accents 
	$dest_fichier = strtr($dest_fichier, 
	'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
	'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
	// remplacer les caracteres autres que lettres, chiffres et point par _ 
	$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
	// copie du fichier    
	move_uploaded_file($_FILES['photo']['tmp_name'], 
	$dest_dossier . $dest_fichier);  
	}
}
?>

 Désolé s'il est un peu long.

 Merci pour votre aide.

 diabolo67

Répondre à diabolo67

4

dedale82, le 12 aoû 2005 à 23:27:36

Soit le repertoire n'existe pas, soit tu n'as pas de permissions en ecriture dessus.
Bonne soiree

Répondre à dedale82

5

diabolo67, le 15 aoû 2005 à 12:20:28

Bonjour,

J'ai pas très bien compris le fonctionnement du code.
Par exemple

$dest_dossier = '/brice/photos/';

Indique bien l'adresse du dossier qui va recevoir les images ?
Ce dossier existe bien. Comment vérifier que j'ai bien les droits en écritures dessus ?
Et que signifie exactement cette alerte :
Warning: move_uploaded_file(/brice/photos/ebay1.jpg): failed to open stream: No such file or directory in /home/diapason/www/brice/upload.php on line 33


On dirai une erreur en local ? Pourtant je fais le test depuis le site ?
Merci pour vos réponses

diabolo

Répondre à diabolo67

6

diabolo67, le 15 aoû 2005 à 12:28:29

En utilisant le code de StreM

Voila les erreurs qui s'affichent

Warning: move_uploaded_file(brice/photos/ebay1.jpg): failed to open stream: No such file or directory in /home/diapason/www/brice/trait_parent.php on line 8

Warning: move_uploaded_file(): Unable to move '/tmp/phpeZrSB8' to 'brice/photos/ebay1.jpg' in /home/diapason/www/brice/trait_parent.php on line 8


diabolo

Répondre à diabolo67

7

diabolo67, le 16 aoû 2005 à 12:23:09

Bonjour ,

J'ai réglé le probleme mon fichier doit avoir l'adresse suivante ../brice/photos.

Je continue sur ma lancé .

Pour permettre à l'administrateur du site de télécharger des photos, d'écrire son texte et de rajouter une mention de prix j'ai crée une page avec un formulaire pour l'ensemble.

Les photos sont uploader dans un dossier et le reste dans ma base.
Voici le code php :

Code:

<?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = '../brice/photos/';
// utilisez également des slashes sous windows : $dest_dossier = 'c:/brice/photos/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'],
$dest_dossier . $dest_fichier);
}

$host = "***";
$user = "****";
$pass = "*****";
$bdd = "*****";

// connection base de données
@mysql_connect($host, $user, $pass) or die ("Impossible de se connecter à la base de donnée");

//selection de la base
@mysql_select_db($bdd) or die ("Impossible de se connecter à la base");

// Requête modifiée (problème de syntaxe)
$sql=mysql_query("INSERT INTO brice VALUES ('' , '$text', '$prix', )") or die ("Erreur dans la requête ".$sql."<br />".mysql_error());

header("location: confirmationupload.php");

}
?>


J'ai une erreur sql ligne 1 et je vois pas ce que sa peux être.

Merci pour votre aide

diabolo

Répondre à diabolo67

8

diabolo67, le 16 aoû 2005 à 17:27:07

J'en suis toujours au même point personne n'a une petite idée ?

diabolo

Répondre à diabolo67

9

StreM, le 23 aoû 2005 à 16:40:23

Tu n'arrives pas a te connecter a ta BDD ?
ligne1, tu n'as pas de SQL, tu as que du PHP, alors je comprends pas ton erreur...

Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

10

 siskozed, le 2 aoû 2008 à 22:38:42

Si ca arrive à quelqu'un un jour, il sera content de savoir d'ou ca vient :

En fait, il ne créé pas le dossier automatiquement. Il faut le créer manuellement. Avec la fonction

mkdir('./repertoire parent/'.$id.'/', 0777);

mkdir ( 'répertoire', droits ) pour les droits c'est comme sous linux avec le chmod (777 accès total)

voilà apres, ca coule tout seul !!

Répondre à siskozed