19. juli 2001 - 21:37
Der er
16 kommentarer
PHP lærling skal have hjælp til billede-upload
Ja, jeg skal som sagt meget have noget hjælp til et PHP-script... Det hele går nu på at lave et script som kan uploade et billede.. Men det billede skal først laves lidt om inden at billedet bliver smidt op. Det skal nemlig først \"resizes\" til 90x90 også smides op.. Og meget gerne sådan at det først hedder 1.jpg og det andet hedder 2.jpg osv... Er det en der vil hjælpe!?
Annonceindlæg fra Partnertekst
Det er ikke noget jeg vil hænges op på - men noget a lá det her skulle ku\' bruges med hensyn til det der resizing?? if(eregi(\".jpg$|.jpeg$\",$imagefile) { $src_img = imagecreatefromjpeg($imagefile); } if(eregi(\".gif$\",$imagefile) { $src_img = imagecreatefromgif($imagefile); } $new_w = 90; $new_h = 90; $dst_img = imagecreate($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); Med hensyn til Upload kan det gøres sådan: Du laver en form i \"upload.php\" der ser sådan ud: <form encrypt=\"multipart/form-data\" action=\"upload2.php\"> <input type=\"file\" name=\"file\"> <input type=\"submit\"> </form> I upload2.php skriver du: copy(\"$file\",\"sti/til/der/hvor/filen/skal/gemmes/$file_name\") or die(\"Der er sket en fejl); Intet af dette er testet :o]
upz.. copy(\"$file\",\"sti/til/der/hvor/filen/skal/gemmes/$file_name\") or die(\"Der er sket en fejl\");
Hvordan skal det her sættes ind: if(eregi(\".jpg$|.jpeg$\",$imagefile) { $src_img = imagecreatefromjpeg($imagefile); } if(eregi(\".gif$\",$imagefile) { $src_img = imagecreatefromgif($imagefile); } $new_w = 90; $new_h = 90; $dst_img = imagecreate($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); ????
Det skal sættes ind efter billedet er uploadet! - dvs til sidst i upload2 Og husk at $imagefile skal indeholde filnavnet på billedet.
Den siger der er en fejl på linje 12... <HTML> <HEAD> <TITLE>Upload</TITLE> </HEAD> <BODY> <? if ($file) { copy(\"$file\",\"include/$file_name\") or die(\"Der er sket en fejl); if(eregi(\".jpg$|.jpeg$\",$imagefile) { $src_img = imagecreatefromjpeg($imagefile); } if(eregi(\".gif$\",$imagefile) { $src_img = imagecreatefromgif($imagefile); } $new_w = 90; $new_h = 90; $dst_img = imagecreate($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); } ?> <form encrypt=\"multipart/form-data\" action=\"billede.php3\"> <input type=\"file\" name=\"file\"> <input type=\"hidden\" name=\"imagesfile\" value=\"1.jpg\"> <input type=\"submit\"> </form> </BODY> </HTML>
copy(\"$file\",\"include/$file_name\") or die(\"Der er sket en fejl); der mangler \"); til sidst... copy(\"$file\",\"include/$file_name\") or die(\"Der er sket en fejl\"); Jeg har lige rettet hist og her .. <HTML> <HEAD> <TITLE>Upload</TITLE> </HEAD> <BODY> <? if ($file) { copy(\"$file\",\"include/$file_name\") or die(\"Der er sket en fejl\"); $imagesfile = \"include/$file_name\"; if(eregi(\".jpg$|.jpeg$\",$imagefile) { $src_img = imagecreatefromjpeg($imagefile); } if(eregi(\".gif$\",$imagefile) { $src_img = imagecreatefromgif($imagefile); } $new_w = 90; $new_h = 90; $dst_img = imagecreate($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); } ?> <form encrypt=\"multipart/form-data\" action=\"billede.php3\"> <input type=\"file\" name=\"file\"> <input type=\"hidden\" name=\"imagesfile\" value=\"1.jpg\"> <input type=\"submit\"> </form> </BODY> </HTML>
Den siger det stadig... fejlen ligger her på denne linje: if(eregi(\".jpg$|.jpeg$\",$imagefile) { Kan det kører hjemme ved dig?
if(eregi(\".jpg$|.jpeg$\",$imagefile) { laves om til if(eregi(\".jpg$|.jpeg$\",$imagefile)) { ligeledes med if(eregi(\".gif$\",$imagefile) { om til if(eregi(\".gif$\",$imagefile)) {
Så.. Nu kører den lidt bedre: <HTML> <HEAD> <TITLE>Upload</TITLE> </HEAD> <BODY> <? if($file) { $desti=\"include/\";// stien hvor filen skal gemmes $desti.=$file_name; copy($file,$desti); $imagesfile = \"include/$file_name\"; if(eregi(\".jpg$|.jpeg$\",$imagefile)) { $src_img = imagecreatefromjpeg($imagefile); } if(eregi(\".gif$\",$imagefile)) { $src_img = imagecreatefromgif($imagefile); } $new_w = 90; $new_h = 90; $dst_img = imagecreate($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); } ?> <FORM ENCTYPE=\"multipart/form-data\" ACTION=\"billede.php3\" METHOD=\"post\"> <INPUT NAME=\"file\" TYPE=\"file\"> <INPUT TYPE=\"submit\" VALUE=\"Upload\"> </FORM> </BODY> </HTML> -- Men der kommer stadig denne fejl... Fatal error: Call to unsupported or undefined function imagecreate() in /home/sites/site122/web/admin_daro/billede.php3 on line 23
20. juli 2001 - 17:24
#10
Hm - måske fordi du ikke har den nye version af PHP installeret ? ...
20. juli 2001 - 18:28
#11
Hej Bjarne ...
Jeg har undersøgt sagerne lidt nærmere ... PHP kan desværre ikke redigere/behandle gif billeder, da der var lidt \"licens problemer\". Men denne kode virker:
http://www.razmuz.dk/test/test2.php <HTML>
<HEAD>
<TITLE>Upload</TITLE>
</HEAD>
<BODY>
<?
if($file) {
$desti=\"include/\";// stien hvor filen skal gemmes
$desti.=$file_name;
copy($file,$desti);
if(eregi(\".jpg$|.jpeg$\",$desti)) {
$src_img = imagecreatefromjpeg($desti);
} else {
print \"Forkert filformat, der accepteres kun *.jpg og *.jpeg\";
exit;
}
$new_w = 90;
$new_h = 90;
$dst_img = imagecreate($new_w,$new_h);
imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img));
}
imagejpeg($dst_img, \"$desti\");
print \"<center><img src=\\\"$desti\\\"></center>\";
?>
<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"test2.php\" METHOD=\"post\">
<INPUT NAME=\"file\" TYPE=\"file\">
<INPUT TYPE=\"submit\" VALUE=\"Upload\">
</FORM>
</BODY>
</HTML>
Prøv at uploade en jpg og se! :o]
20. juli 2001 - 18:49
#12
ARGH! - en aller sidste rettelse! // forhåbentlig: <HTML> <HEAD> <TITLE>Upload</TITLE> </HEAD> <BODY> <? if($file) { $desti=\"include/\";// stien hvor filen skal gemmes $desti.=$file_name; copy($file,$desti); if(eregi(\".jpg$|.jpeg$\",$desti)) { $src_img = imagecreatefromjpeg($desti); } else { print \"Forkert filformat, der accepteres kun *.jpg og *.jpeg\"; exit; } $new_w = 90; $new_h = 90; $dst_img = imagecreate($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); imagejpeg($dst_img, \"$desti\"); print \"<center><img src=\\\"$desti\\\"></center>\"; } ?> <FORM ENCTYPE=\"multipart/form-data\" ACTION=\"test2.php\" METHOD=\"post\"> <INPUT NAME=\"file\" TYPE=\"file\"> <INPUT TYPE=\"submit\" VALUE=\"Upload\"> </FORM> </BODY> </HTML>
20. juli 2001 - 22:26
#13
hmm.. Det må være en for gammel version af php min server bruger...
for den siger stadig:
Fatal error: Call to unsupported or undefined function imagecreatefromjpeg() in /home/sites/site122/web/admin_daro/billede.php3 on line 13
Her:
http://www.danskeroligans.dk/admin_daro/billede.php3
20. juli 2001 - 22:30
#14
Mærkeligt - installer en ny version? ...
21. juli 2001 - 22:03
#15
Bjarne -> finder du ud af noget? \\\\-> RAZ
24. juli 2001 - 13:44
#16
Bare lige for en god ordens skyld.. imagecopyresized() er en lidt ældre funktion, der egentlig fungerer glimrende, men hvis man kigger lidt på billederne ser man at de er grumsede.. Der er kommet en ny funktion der hedder imageCopyResampled().. den fungerer på 100% samme måde, men den er først med i GD lib fra version 2.0..
Vi tilbyder markedets bedste kurser inden for webudvikling