Uploader des images vers un site
diabolo67
Messages postés
9
Statut
Membre
-
siskozed -
siskozed -
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
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
A voir également:
- Uploader des images vers un site
- Site de telechargement - Accueil - Outils
- Site pour partager des photos - Guide
- Site x - Guide
- Site pour vendre des objets d'occasion - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
10 réponses
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-lupload-de-fichiers
a plus
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-lupload-de-fichiers
a plus
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 :
Et voici le code tel que je l'ai trouvé sur le post indiqué par dedale82
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
Bonjour,
J'ai pas très bien compris le fonctionnement du code.
Par exemple
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 :
On dirai une erreur en local ? Pourtant je fais le test depuis le site ?
Merci pour vos réponses
diabolo
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En utilisant le code de StreM
Voila les erreurs qui s'affichent
diabolo
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
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
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
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...
ligne1, tu n'as pas de SQL, tu as que du PHP, alors je comprends pas ton erreur...
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 !!
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 !!
$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>