probleme avec un script d'upload - PHP - Programmation
Marsh Posté le 02-06-2005 à 15:51:32
le problème c'est qu'avec ton './album/...." le script va rechercher un repertoire album à partir de l'emplacement ou il se trouve.
C'est à dire qu'il va chercher un repertoire album dans le repertoire "/home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/album/" et non dans le repertoire
"/home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/"
en considerant que web est ta racine web.
Pourquoi ne pas préciser l'arborescence totale dans ton move_uploaded_file?
$arbo="/home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web";
move_uploaded_file($f1_tmpname,"$arbo/album/{$f1_name}" ) or .....
???
Marsh Posté le 02-06-2005 à 16:04:34
en faisant comme tu dit ca marche. J'ai donc ca
Code :
|
Il me met bien transfert reussi , et dan sla base le fichier y est. Mais ou ce trouve le fichier pour que je puisse la voir ?
Marsh Posté le 02-06-2005 à 16:07:52
dans le repertoire :
/home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/album/
et si tu veux voir ton image, tu peux tout simplement taper :
(en considerant que web est ton repertoire racine )
<img src="/album/mon_fichier.jpg">
Marsh Posté le 02-06-2005 à 16:15:23
Ok , merci beaucoup je te remercie. Quand a moi je vais essayer de voir comment je peut faire pour creer des miniatures de ces images uploader . Si t'as la solution merci de me le faire savoir .
@+++++ et merci
Marsh Posté le 02-06-2005 à 16:39:27
quelque chose comme ca :
tu créés un repertoire small dans le repertoire album.
Ensuites tu créé un fichier album.php dans le repertoire album et copies ca, normalement il doit t'afficher des vignettes de 80 px de larges, et par serie de 10.....
il se charge tout seul de faire la vignette si elle n'existe pas :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Liste des images</title>
<style type="text/css">
body {background-color:black;color:white;}
a {color:white}
.sp a {color:black}
b {font-size:larger;font-weight:bold;}
.sp {margin:8px;float:left; height:200px;width:180px;border: 1px solid white;text-align:center;background-color:#DADADA;}
table {margin:0px;padding:0px;cell-spacing:0px;border:none}
.img {margin:2px}
</style>
</head>
<body>
<div style="width:100%;align:enter;text-align:center;">
<div style="width:1000px;border:solid white 1px;margin:auto;text-align:center;">
<?php
function small_img($img,$width=80) {
$toto=getimagesize($img.".jpg" );
$h=$width/$toto[0]*$toto[1];
$src = imagecreatefromjpeg($img.".jpg" );
$dest = imagecreatetruecolor($width, $h); // creation de l'image de destination
imagecopyresized ($dest ,$src, 0,0,0,0, $width, $h, $toto[0],$toto[1]);
imagejpeg($dest, "small/".$img.".jpg" );
}
$handle=opendir('/home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/album/');
while ($file = readdir($handle)) {
if (substr($file,strlen($file)-3)=="jpg" && substr($file,0,1)!="O" )
$f[]=substr($file,0,strlen($file)-4);
}
closedir($handle);
if (!isset($list)) $list=1;
$total=count($f);
$fin=(($list*10)<=$total)?($list*10):$total;
for ($i=(0+($list-1)*10);$i<$fin;$i++) {
echo "<span class=\"sp\">";
if (!file_exists("small/".$f[$i].".jpg" )) {
small_img($f[$i]);
}
echo"<a href=\"album.php?img=".$f[$i]."\" target=\"album\"><img src=\"small/".$f[$i].".jpg\" width=\"80\" border=\"0\" class=\"img\"><br>
".$f[$i]."
</a></span>\n";
}
echo"</div>";
if ($total>10) {
echo"<br><br><div style=\"align:center;text-align:center;clear:left\"><hr width=50%>";
$mod=(($total/10)>round($total/10,0))?round($total/10,0)+1:round(($total/10),0);
for ($i=1;$i<=$mod;$i++) {
echo"<a href=\"album.php?list=$i\">"; if ($list==$i) echo"<b>"; echo"Page $i"; if ($list==$i) echo"</b>"; echo"</a>";
if ($i!=$mod) echo" | ";
}
echo"</div>";
}
?>
</div>
</body>
</html>
Marsh Posté le 02-06-2005 à 17:06:47
impecc , mais encore un souci.
l'url dela page ou s'affiche les vignettes est du style
http://www.monsite.com/album/album.php
et quand je clique sur une vignette une page s'ouvre et son url est du style:
http://www.monsite.com/album/album [...] rnadoes300
le probleme c'est que l'image est en migniature aussi.
Est il possible de la voir en grand ?
Marsh Posté le 02-06-2005 à 17:13:34
oups j'ai fait une petite erreur!
en effet remplace
echo"<a href=\"album.php?img=".$f[$i]."\" target=\"album\"><img src=\"small/".$f[$i].".jpg\" width=\"80\" border=\"0\" class=\"img\"><br>
".$f[$i]."
</a></span>\n";
par :
echo"<a href=\"image.php?img=".$f[$i]."\" target=\"album\"><img src=\"small/".$f[$i].".jpg\" width=\"80\" border=\"0\" class=\"img\"><br>
".$f[$i]."
</a></span>\n";
et tu créés un fichier nommé image.php toujours dans le repertoire album et qui contient ca :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title><?=$img?></title>
<style type="text/css">
body {background-color:black}
.img {margin:2px}
</style>
</head>
<body>
<?
echo"<img src=\"$img.jpg\">";
?>
</body>
</html>
Marsh Posté le 02-06-2005 à 17:37:25
Merci beaucoup. Tout marche super bien.
Passes une bonne soirée A+++
Marsh Posté le 02-06-2005 à 17:56:24
re
une dernier petite
question est ca sera bon.
comment puis je faire pour que les images uploader ne depassent pas 800x600 et que ce soit uniquement des .jpeg , .png ?
dans ce fichier
Code :
|
Marsh Posté le 03-06-2005 à 09:58:38
wydook a écrit : re |
et bien ceci devrait etre suffisant :
if ($my_img=getimagesize($f1_tmpname)) {
if(($my_img[0]*$my_img[1])>(800*600)) {
ma taille d'image trop grande (800*600)
}
if ($my_img[2]!='PNG' && $my_img[2]!='JPG'){
mon fichier n(est ni un png ni un jpeg
}
} else {
mon fichier n'est pas une image valide (attention au chemin d'acces de $f1_tmpname)
}
Marsh Posté le 02-06-2005 à 14:04:22
Bonjour
J'ai un probleme avec le script d'upload http://www.siteduzero.com/vostutos [...] =51&page=1
j'ai creer un dossier nommé album , a la racine de mon site avec dedans la page envoie.php
quand j'uploade une photo , j'ai ce message d'erreur
Warning: move_uploaded_file(./album/Superior%20storm%20front%207.jpg): failed to open stream: No such file or directory in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/album/envoie.php on line 31
Warning: move_uploaded_file(): Unable to move '/tmp/php4tRduf' to './album/Superior%20storm%20front%207.jpg' in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/album/envoie.php on line 31
- Impossible d'enregistrer le fichier, contacter le webmaster!
n
voilà la ligne 31
move_uploaded_file($f1_tmpname, "./album/{$f1_name}" ) or $infos .= "- Impossible d'enregistrer le fichier, contacter le webmaster!<br>n";
apparament le chemin ne serait pas bon , je comprend pas. J'ai chmoder le dossier et le fichier en 777
Message édité par wydook le 02-06-2005 à 15:07:02