Tranfert photo par php
Résolu
bretonm2004
Messages postés
319
Date d'inscription
Statut
Membre
Dernière intervention
-
Bilow Messages postés 1014 Date d'inscription Statut Membre Dernière intervention -
Bilow Messages postés 1014 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un dossier dans mon serveur qui se nomme avendrenp ou sont stoké mes photos d,annonce classés
les photos sont classé par id
ex 1-0.jpg 1 est le id et 0 le numero de la photo
j'aimerait transferer ces photos dans un dossier avendrep quand l'annonce est activée
comment devrais-je my prendre
merci
j'ai un dossier dans mon serveur qui se nomme avendrenp ou sont stoké mes photos d,annonce classés
les photos sont classé par id
ex 1-0.jpg 1 est le id et 0 le numero de la photo
j'aimerait transferer ces photos dans un dossier avendrep quand l'annonce est activée
comment devrais-je my prendre
merci
A voir également:
- Tranfert photo par php
- Google photo - Télécharger - Albums photo
- Google maps photo maison - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Partage photo - Guide
- Google traduction photo - Guide
6 réponses
Voila le code il ne faut que changer les répertoire
<?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 3000000;
$dest_dossier = '../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 3Mb !';
}
// 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
?>
<html>
<body>
<!-- Erreur ? -->
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form name="form" method="POST" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p>
<label for="photo">Photo : </label>
<input type="file" name="photo" />
<!-- bouton d'envoi -->
</p>
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
<input type="hidden" name="MM_insert" value="form">
</form>
</body>
</html>
bonne chance
http://freecaell.blogspot.com/
<?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 3000000;
$dest_dossier = '../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 3Mb !';
}
// 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
?>
<html>
<body>
<!-- Erreur ? -->
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form name="form" method="POST" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p>
<label for="photo">Photo : </label>
<input type="file" name="photo" />
<!-- bouton d'envoi -->
</p>
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
<input type="hidden" name="MM_insert" value="form">
</form>
</body>
</html>
bonne chance
http://freecaell.blogspot.com/
Pour cela il faut renommer le fichier.
Par exemple, le fichier de code "deplacer.php" et "photo.jpg" sont dans le dossier "source1". Tu veux déplacer "photo.jpg" dans "source2", qui est dans le même dossier que source 1.
Il faut utiliser cette commande à partir de "deplacer.php" :
Bye ;)
Par exemple, le fichier de code "deplacer.php" et "photo.jpg" sont dans le dossier "source1". Tu veux déplacer "photo.jpg" dans "source2", qui est dans le même dossier que source 1.
Il faut utiliser cette commande à partir de "deplacer.php" :
rename("photo.jpg", "../source2/photo.jpg");
Bye ;)
voila j ai essayé la methode et voici ce qu il en ressort
Warning: copy(55-0.jpg) [function.copy]: failed to open stream: No such file or directory in /home/auto7837/public_html/publieravendre1.php on line 290
Warning: copy() [function.copy]: Filename cannot be empty in /home/auto7837/public_html/publieravendre1.php on line 291
voici le code que j'ai utilisé
copy("$image1", "/home/auto7837/public_html/photos/avendrenp/");
copy("$image2", "/home/auto7837/public_html/photos/avendrenp/");
$image 1 contient une image
$image 2 ne contient rien
Warning: copy(55-0.jpg) [function.copy]: failed to open stream: No such file or directory in /home/auto7837/public_html/publieravendre1.php on line 290
Warning: copy() [function.copy]: Filename cannot be empty in /home/auto7837/public_html/publieravendre1.php on line 291
voici le code que j'ai utilisé
copy("$image1", "/home/auto7837/public_html/photos/avendrenp/");
copy("$image2", "/home/auto7837/public_html/photos/avendrenp/");
$image 1 contient une image
$image 2 ne contient rien
Salut !
copy() copie les fichiers sur le serveur. $image1 contient une image, GD, ou bien l'adresse d'une image sur le serveur ?
Si c'est sur le serveur, d'accord. Attention, $image2 ne peut pas être vide, supprime cette ligne.
Si c'est une image en GD, alors il faut l'enregistrer :
imagejpeg($image1, ""/home/auto7837/public_html/photos/avendrenp/");
Bye ;)
copy() copie les fichiers sur le serveur. $image1 contient une image, GD, ou bien l'adresse d'une image sur le serveur ?
Si c'est sur le serveur, d'accord. Attention, $image2 ne peut pas être vide, supprime cette ligne.
Si c'est une image en GD, alors il faut l'enregistrer :
imagejpeg($image1, ""/home/auto7837/public_html/photos/avendrenp/");
Bye ;)
ca peut etre un peu compliqué
j'ai en fait image de 1 a 5 et elle sont soit pleine ou vide car c est une annonce classé le client peut en mettre une ou plusieurs je vais te donne mon script d'ajout d'image peut etre ca peut t aider
le premier chifre de l'image est le id et le deuxieme est le numero de l image
ex: 52-0.jpg id 52 photo1
merci
$i=0; $v=0; for($j=0; $j<5; $j++) { $image[$j]=''; $fn[$j]=''; }
for($nbi=1; $nbi<=5; $nbi++) {
if(!empty($_FILES['image'.$nbi]['tmp_name'])) { $image[$i]=$_FILES['image'.$nbi]; $i++; }
}
//AJOUT DES IMAGES
for($j=0; $j<$i; $j++) {
list($width, $height, $type, $attr)=getimagesize($image[$j]['tmp_name']);
if($image[$j]['size']>524288 && !$image[$j]['error']) { $error="un fichier ne dépassant pas 500ko!!"; }
if(move_uploaded_file($image[$j]['tmp_name'], '/home/auto7837/public_html/photos/avendrep/'.$id.'-'.$v.'.jpg')) {
$fn[$v]=$id.'-'.$v.'.jpg';
$v++;
}
unset($image[$j]['tmp_name']);
}
j'ai en fait image de 1 a 5 et elle sont soit pleine ou vide car c est une annonce classé le client peut en mettre une ou plusieurs je vais te donne mon script d'ajout d'image peut etre ca peut t aider
le premier chifre de l'image est le id et le deuxieme est le numero de l image
ex: 52-0.jpg id 52 photo1
merci
$i=0; $v=0; for($j=0; $j<5; $j++) { $image[$j]=''; $fn[$j]=''; }
for($nbi=1; $nbi<=5; $nbi++) {
if(!empty($_FILES['image'.$nbi]['tmp_name'])) { $image[$i]=$_FILES['image'.$nbi]; $i++; }
}
//AJOUT DES IMAGES
for($j=0; $j<$i; $j++) {
list($width, $height, $type, $attr)=getimagesize($image[$j]['tmp_name']);
if($image[$j]['size']>524288 && !$image[$j]['error']) { $error="un fichier ne dépassant pas 500ko!!"; }
if(move_uploaded_file($image[$j]['tmp_name'], '/home/auto7837/public_html/photos/avendrep/'.$id.'-'.$v.'.jpg')) {
$fn[$v]=$id.'-'.$v.'.jpg';
$v++;
}
unset($image[$j]['tmp_name']);
}
mais tu utilises pas de base de données ?
le principe est que quand le client fait son annonce les images se mettent ds le repertoire avendrenp par le script lpus haut
apres quand le client veut modifier son annonce les photos modifiés s'en vont dans le dossier avendrep
quand le webmaster les a validé elles doivent retourner ds le dossier avendrenp pour qu elle soit affichée sur le site
apres quand le client veut modifier son annonce les photos modifiés s'en vont dans le dossier avendrep
quand le webmaster les a validé elles doivent retourner ds le dossier avendrenp pour qu elle soit affichée sur le site
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mais pourquoi si compliqué ???
tu peux laisser toutes les images dans un seul fichier...
tu ajoute un champ "statut" dans la table ou sont stoquées tes images et suivant ce statut tu sais si ton annonce est validée ou pas par exemple..
0 : annonce non validée
1 : annonce validée
2: annonce fermée/vendue/ou autre... (ou DELETE peu importe)
c'est quand meme plus logique que changer tes images de place
ca sert a rien ca :)
tu peux laisser toutes les images dans un seul fichier...
tu ajoute un champ "statut" dans la table ou sont stoquées tes images et suivant ce statut tu sais si ton annonce est validée ou pas par exemple..
0 : annonce non validée
1 : annonce validée
2: annonce fermée/vendue/ou autre... (ou DELETE peu importe)
c'est quand meme plus logique que changer tes images de place
ca sert a rien ca :)
ca sera un gain de temps pour toi au final de prendre 2 jours pour revoir ton script et avoir un système efficace
=> a chaques annonces entrées 1 ligne dans la table annonce
=> et a chaques photos qui correspond 1 ligne dans la table photo_annonce
avec une colone id_annonce pour savoir a quelle annonce est reliée l'image...
quand tu valide l'anonce tu modifie juste le champ valide de la table annonce et ton annonce sera visible
rien de plus simple a gérer
=> a chaques annonces entrées 1 ligne dans la table annonce
=> et a chaques photos qui correspond 1 ligne dans la table photo_annonce
avec une colone id_annonce pour savoir a quelle annonce est reliée l'image...
quand tu valide l'anonce tu modifie juste le champ valide de la table annonce et ton annonce sera visible
rien de plus simple a gérer
J'aimerais juste comprendre : Tu as besoin d'une solutino temporaire. Mais tu peux revoir le site 2 jours. Si tu as besoin d'une solution, c'est que le site n'ets pas encore complètement en place, et tu peux donc te permettre de revoir cela. Ou est le problème ?
Sinon, c'est vrai que par une BD c'est plus simple. Ajoute un champ 'statu' qui vaut 0 pour "posté", 1 pour "modifié", 2 pour "supprimé" etc...
Sinon, c'est vrai que par une BD c'est plus simple. Ajoute un champ 'statu' qui vaut 0 pour "posté", 1 pour "modifié", 2 pour "supprimé" etc...
Etape pour les FICHIERS existants, et donc PAS en variable PHP :
Pour COPIER :
Exemple :
En absolu, cela déplacera /dossierInitial/dossier/photo.jpg VERS /source/photo.jpg ; Bien entendu dossierInitial est le dossier contenant la page PHP.
Etape pour les images en VARIABLE PHP :
Enregistrer les images selon leur extension.
imagejpeg($handle, $chemin_final); pour une image JPEG en variable PHP. Handle étant ouvert avec createimagefromjpeg() ou bien une autre.
Pour info, c'est le chemin relatif, pas le chemin absolu qu'il faut utiliser. Donc, pas /home/auto..., mais bien ../source/ (par exemple).
Pour COPIER :
copy($chemin_initial, $chemin_final);Pour DEPLACER :
rename($chemin_initial, $chemin_final);Note que tu peux te déplacer dans les dossiers.
Exemple :
copy("dossier/photo.jpg", "../source/photo.jpg");
En absolu, cela déplacera /dossierInitial/dossier/photo.jpg VERS /source/photo.jpg ; Bien entendu dossierInitial est le dossier contenant la page PHP.
Etape pour les images en VARIABLE PHP :
Enregistrer les images selon leur extension.
imagejpeg($handle, $chemin_final); pour une image JPEG en variable PHP. Handle étant ouvert avec createimagefromjpeg() ou bien une autre.
Pour info, c'est le chemin relatif, pas le chemin absolu qu'il faut utiliser. Donc, pas /home/auto..., mais bien ../source/ (par exemple).
voila ce que j ai pour l instant
$id = $_POST['id'];
$email = $_POST['email'];
$idinsert=$id;
$sql="SELECT * FROM avendresemipubliee WHERE id=$id ";
$req=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_array($req)) {
$id=$row['id']; $typedannonce=$row['typedannonce']; $marque=$row['marque']; $autres=$row['autres']; $modele=$row['modele']; $prix=$row['prix']; $negociable=$row['negociable']; $annee=$row['annee']; $etat=$row['etat']; $carburant=$row['carburant']; $kilometrage=$row['kilometrage']; $transmission=$row['transmission']; $immatricule=$row['immatricule']; $climatisation=$row['climatisation']; $audio=$row['audio']; $cylindre=$row['cylindre']; $puissance=$row['puissance']; $consommation=$row['consommation']; $couleurinterieure=$row['couleurinterieure']; $couleurexterieure=$row['couleurexterieure']; $telephone=$row['telephone']; $email=$row['email']; $message=$row['message']; $date=$row['date']; $image1=$row['image1']; $image2=$row['image2']; $image3=$row['image3']; $image4=$row['image4']; $image5=$row['image5'];
$i=0; $v=0; for($j=0; $j<5; $j++) { $image[$j]=''; $fn[$j]=''; }
for($nbi=1; $nbi<=5; $nbi++) {
if(!empty($_FILES['image'.$nbi]['tmp_name'])) { $image[$i]=$_FILES['image'.$nbi]; $i++; }
}
copy("$image1", '/home/auto7837/public_html/photos/avendrenp/'.$id.'-'.$v.'.jpg');
{
mysql_query("UPDATE avendrepubliee SET typedannonce='{$typedannonce}', marque='{$marque}', autres='{$autres}', modele='{$modele}', prix='{$prix}', negociable='{$negociable}', annee='{$annee}', etat='{$etat}', carburant='{$carburant}', kilometrage='{$kilometrage}', transmission='{$transmission}', immatricule='{$immatricule}', climatisation='{$climatisation}', audio='{$audio}', cylindre='{$cylindre}', puissance='{$puissance}', consommation='{$consommation}', couleurinterieure='{$couleurinterieure}', couleurexterieure='{$couleurexterieure}', telephone='{$telephone}', email='{$email}', message='{$message}', image1='{$fn[0]}', image2='{$fn[1]}', image3='{$fn[2]}', image4='{$fn[3]}', image5='{$fn[4]}' WHERE id='{$id}';");
}
mais j ai une erreur Parse error: syntax error, unexpected $end in /home/auto7837/public_html/publieravendre1.php on line 340
$id = $_POST['id'];
$email = $_POST['email'];
$idinsert=$id;
$sql="SELECT * FROM avendresemipubliee WHERE id=$id ";
$req=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_array($req)) {
$id=$row['id']; $typedannonce=$row['typedannonce']; $marque=$row['marque']; $autres=$row['autres']; $modele=$row['modele']; $prix=$row['prix']; $negociable=$row['negociable']; $annee=$row['annee']; $etat=$row['etat']; $carburant=$row['carburant']; $kilometrage=$row['kilometrage']; $transmission=$row['transmission']; $immatricule=$row['immatricule']; $climatisation=$row['climatisation']; $audio=$row['audio']; $cylindre=$row['cylindre']; $puissance=$row['puissance']; $consommation=$row['consommation']; $couleurinterieure=$row['couleurinterieure']; $couleurexterieure=$row['couleurexterieure']; $telephone=$row['telephone']; $email=$row['email']; $message=$row['message']; $date=$row['date']; $image1=$row['image1']; $image2=$row['image2']; $image3=$row['image3']; $image4=$row['image4']; $image5=$row['image5'];
$i=0; $v=0; for($j=0; $j<5; $j++) { $image[$j]=''; $fn[$j]=''; }
for($nbi=1; $nbi<=5; $nbi++) {
if(!empty($_FILES['image'.$nbi]['tmp_name'])) { $image[$i]=$_FILES['image'.$nbi]; $i++; }
}
copy("$image1", '/home/auto7837/public_html/photos/avendrenp/'.$id.'-'.$v.'.jpg');
{
mysql_query("UPDATE avendrepubliee SET typedannonce='{$typedannonce}', marque='{$marque}', autres='{$autres}', modele='{$modele}', prix='{$prix}', negociable='{$negociable}', annee='{$annee}', etat='{$etat}', carburant='{$carburant}', kilometrage='{$kilometrage}', transmission='{$transmission}', immatricule='{$immatricule}', climatisation='{$climatisation}', audio='{$audio}', cylindre='{$cylindre}', puissance='{$puissance}', consommation='{$consommation}', couleurinterieure='{$couleurinterieure}', couleurexterieure='{$couleurexterieure}', telephone='{$telephone}', email='{$email}', message='{$message}', image1='{$fn[0]}', image2='{$fn[1]}', image3='{$fn[2]}', image4='{$fn[3]}', image5='{$fn[4]}' WHERE id='{$id}';");
}
mais j ai une erreur Parse error: syntax error, unexpected $end in /home/auto7837/public_html/publieravendre1.php on line 340
le fichier est déja formaté et deja sur le serveur je n'ai donc pas besoin du formulaire et de ce code
tout ce que je veut faire c'est prendre ma photos qui est sur un dossier du serveur et la déplacer tout simplement merci