06. januar 2005 - 12:51
Der er
18 kommentarer og 1 løsning
upload og resize
Hejsa. Jeg søger en funktion, som kan uploade, kun jpg billeder og når den så uploader skal den lave billedet 125 højt og 125 bredt. Den skal så kun gemme det billede på 125x125 i mappen ../images/spil/ Den skal så indsætte det i nedenstående mysql. Den skal så kalde billedet ID.jpg, noget med at kalde den mysql_insert_id() eller sådan. + den så smider navnet ind i feltet billede mysql_query("INSERT INTO zurekk_spil (billede) VALUES ('$billede')") or die(mysql_error());
Annonceindlæg fra Pax8
06. januar 2005 - 13:21
#1
Nu har jeg sat dette sammen, ved ikke om det virker endnu, men der mangler resize funktionen. En der kan smider den på? Kode: <? include('../sql.php'); if(isset($_POST[navn])) { mysql_query("INSERT INTO zurekk_spil (navn,hits,url,beskrivelse,kategori) VALUES ('$_POST[navn]',0,'$_POST[url]','$_POST[beskrivelse]','$_POST[kategori]')") or die(mysql_error()); $image = mysql_insert_id().substr($_FILES['billede']['name'],strrpos($_FILES['billede']['name'],'.')); move_uploaded_file($_FILES['billede']['tmp_name'], '../images/spil/'.$billede); } else { echo ''; echo '<form method="POST" action="admin_spil.php">'; echo '<p>Navn:<br><input type="text" name="navn"></p>'; echo '<p>Url:<br><input type="text" name="url"></p>'; echo '<p>Beskrivelse:<br><textarea rows="10" name="beskrivelse" cols="30"></textarea></p>'; echo '<p>Kategori:<br><select size="1" name="kategori">'; $query = mysql_query("SELECT * FROM zurekk_kategorier WHERE type = 'spil'") or die(mysql_error()); while ($row = mysql_fetch_array($query)) { echo '<option value="'.$row[kategori].'">'.$row[kategori].'</option>'; } echo '</select></p>'; echo '<p><input type="submit" value="Tilføj" name="submit"></p>'; echo '</form>'; } ?>
06. januar 2005 - 13:23
#2
resizer $image. if(file_exists($image)) { $imgsize = getimagesize($image); if($imgsize[0] > 110) { $width = 110; $height = $imgsize[1] / ($imgsize[0] / 110); $dst_img = imagecreatetruecolor($width,$height); $src_img=ImageCreateFromJpeg("$image"); ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img)); ImageJpeg($dst_img, "./produkter/" . $nytNavn); } else { $src_imga=ImageCreateFromJpeg("$image"); ImageJpeg($src_imga, "./produkter/" . $nytNavn); } }
06. januar 2005 - 13:26
#3
eller bedre: function resize($image,$path,$width); { if(file_exists($image)) { $imgsize = getimagesize($image); if($imgsize[0] > $width) { $height = $imgsize[1] / ($imgsize[0] / $width); $dst_img = imagecreatetruecolor($width,$height); $src_img=ImageCreateFromJpeg("$image"); ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img)); ImageJpeg($dst_img, $path . $image); } else { $src_imga=ImageCreateFromJpeg("$image"); ImageJpeg($src_imga, $path . $image); } } } $image = billede $path = hvor det skal hen $width = breden i px f.eks. 125
06. januar 2005 - 13:26
#4
morteeart > Den skal være 125x125 og passe ind i min kode. Her var hele koden, men den uploader ikke og der mangler stadig resize funktion: <? include('../sql.php'); if(isset($_POST[navn])) { mysql_query("INSERT INTO zurekk_spil (navn,hits,url,beskrivelse,kategori) VALUES ('$_POST[navn]',0,'$_POST[url]','$_POST[beskrivelse]','$_POST[kategori]')") or die(mysql_error()); $image = mysql_insert_id().substr($_FILES['billede']['name'],strrpos($_FILES['billede']['name'],'.')); move_uploaded_file($_FILES['billede']['tmp_name'], '../images/spil/'.$billede); } else { echo ''; echo '<form method="POST" action="admin_spil.php">'; echo '<p>Navn:<br><input type="text" name="navn"></p>'; echo '<p>Url:<br><input type="text" name="url"></p>'; echo '<p>Beskrivelse:<br><textarea rows="10" name="beskrivelse" cols="30"></textarea></p>'; echo '<p>Kategori:<br><select size="1" name="kategori">'; $query = mysql_query("SELECT * FROM zurekk_kategorier WHERE type = 'spil'") or die(mysql_error()); while ($row = mysql_fetch_array($query)) { echo '<option value="'.$row[kategori].'">'.$row[kategori].'</option>'; } echo '</select></p>'; echo '<p>Billede:<br><input type="file" name="billede"> - Kun .jpg billeder!</p>'; echo '<p><input type="submit" value="Tilføj" name="submit"></p>'; echo '</form>'; } ?>
06. januar 2005 - 13:29
#5
Kan du ikke bare give mig noget i stil med: ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img)); bare hvor du fjerner $dst_img og forklare hvad der skal være der og i de andre. Så skal jeg nok finde ud af det.
06. januar 2005 - 13:32
#6
problemet er netop at ved at lave det resize så skal du have resten med.
Det er en del af GDLIB modulet til php (
www.php.net/image )
du kan vel bare gøre noget i stil med:
resize("$_FILES['billede']['tmp_name']","../images/spil",125);
06. januar 2005 - 13:34
#7
og forresten så virker dette her kun til jpg filer.
06. januar 2005 - 13:34
#8
resize("$_FILES['billede']['tmp_name']","../images/spil",125); hvor skal jeg smide den linje?
06. januar 2005 - 13:35
#9
En anden ting, du får funktionerne til resize, og så er det jo op til dig selv at tilpasse det ikke ? Ellers skriv højt og tydelig "LAV ALT ARBEJDET FOR MIG" i spm text. Man er nød til at gøre lidt(det meste) af arbejde selv, det er ihvert min filosofi.
06. januar 2005 - 13:36
#10
du lægger min funktion ind, og så laver du resize i den sektion som behandler din postede data, altså samme sted som mysql inserts ect.
06. januar 2005 - 13:37
#11
Sådan her: <? include('../sql.php'); if(isset($_POST[navn])) { mysql_query("INSERT INTO zurekk_spil (navn,hits,url,beskrivelse,kategori) VALUES ('$_POST[navn]',0,'$_POST[url]','$_POST[beskrivelse]','$_POST[kategori]')") or die(mysql_error()); $billede = mysql_insert_id().substr($_FILES['billede']['name'],strrpos($_FILES['billede']['name'],'.')); resize("$_FILES['billede']['tmp_name']","../images/spil",125); move_uploaded_file($_FILES['billede']['tmp_name'], '../images/spil/'.$billede); } else { echo ''; echo '<form method="POST" action="admin_spil.php">'; echo '<p>Navn:<br><input type="text" name="navn"></p>'; echo '<p>Url:<br><input type="text" name="url"></p>'; echo '<p>Beskrivelse:<br><textarea rows="10" name="beskrivelse" cols="30"></textarea></p>'; echo '<p>Kategori:<br><select size="1" name="kategori">'; $query = mysql_query("SELECT * FROM zurekk_kategorier WHERE type = 'spil'") or die(mysql_error()); while ($row = mysql_fetch_array($query)) { echo '<option value="'.$row[kategori].'">'.$row[kategori].'</option>'; } echo '</select></p>'; echo '<p>Billede:<br><input type="file" name="billede"> - Kun .jpg billeder!</p>'; echo '<p><input type="submit" value="Tilføj" name="submit"></p>'; echo '</form>'; } ?>
06. januar 2005 - 13:50
#12
Med ovenstående kode får jeg denne fejl: Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/woox.dk/woox.dk/httpd.www/zurekk/admin/admin_spil.php on line 11
06. januar 2005 - 13:51
#13
og hvad er på linje 11 ? og du har forresten glemt at smide funktionen ind :P
06. januar 2005 - 13:57
#14
Vil du så ikke lige prøve at smide det sammen med min kode? Du har nemlig også smidt 2 funktioner.Så kan ikke finde hoved eller hale i det lige nu.
06. januar 2005 - 14:19
#15
Jeg sidder lige og prøver noget andet, noget af det er det her: $src = $_FILES['billede']['tmp_name']; $nytNavn = mysql_insert_id().".jpg"; $dst = $_SERVER["DOCUMENT_ROOT"] ."/zurekk/images/spil/". $nytNavn; copy($src, $dst ); Jeg får denne fejl: Warning: copy(): Unable to access in /customers/woox.dk/woox.dk/httpd.www/zurekk/admin/admin_spil.php on line 16 linje 16 er: copy($src, $dst );
06. januar 2005 - 14:20
#16
nej, først jeg postede var bare noget kode. anden post indeohldt en funktion. Og det fejl betyder at du ikke har CHMOD'et din mappe til 777
06. januar 2005 - 14:22
#17
06. januar 2005 - 14:32
#18
Nu har jeg prøvet den, med denne kode: <? include('../sql.php'); if(isset($_POST[navn])) { mysql_query("INSERT INTO zurekk_spil (navn,hits,url,beskrivelse,kategori) VALUES ('$_POST[navn]',0,'$_POST[url]','$_POST[beskrivelse]','$_POST[kategori]')") or die(mysql_error()); $fra = $_FILES['fil']['tmp_name']; $ext = strtolower(end(explode(".", $_FILES['fil']['name']))); $nytNavn = ''.mysql_insert_id().'.'.$ext.''; $til = "../images/spil/" . $nytNavn; move_uploaded_file($fra, $til); $newSizeWidth = 125; $newSizeHeight = 125; imageresize($til, $newSizeWidth, $newSizeHeight, "../images/spil/" . $nytNavn); } else { echo '<form method="POST" action="admin_spil.php">'; echo '<p>Navn:<br><input type="text" name="navn"></p>'; echo '<p>Url:<br><input type="text" name="url"></p>'; echo '<p>Beskrivelse:<br><textarea rows="10" name="beskrivelse" cols="30"></textarea></p>'; echo '<p>Kategori:<br><select size="1" name="kategori">'; $query = mysql_query("SELECT * FROM zurekk_kategorier WHERE type = 'spil'") or die(mysql_error()); while ($row = mysql_fetch_array($query)) { echo '<option value="'.$row[kategori].'">'.$row[kategori].'</option>'; } echo '</select></p>'; echo '<p>Billede:<br><input type="file" name="billede"> - Kun .jpg billeder!</p>'; echo '<p><input type="submit" value="Tilføj" name="submit"></p>'; echo '</form>'; } ?> Den giver denne fejl: Fatal error: Call to undefined function: imageresize() in /customers/woox.dk/woox.dk/httpd.www/zurekk/admin/admin_spil.php on line 21 Noget du vil prøve at fixe?
06. januar 2005 - 14:37
#19
Jeg opretter et nyt spg om det!
Vi tilbyder markedets bedste kurser inden for webudvikling