|
|
|
|
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
Salut,
|
$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 |
Merci pour vos réponses,
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,
$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 |
En utilisant le code de StreM
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 ,
|
Si ca arrive à quelqu'un un jour, il sera content de savoir d'ou ca vient :
|