Avatar billede cmau Nybegynder
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());
Avatar billede cmau Nybegynder
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>';

}
?>
Avatar billede morteeart Nybegynder
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);
}
}
Avatar billede morteeart Nybegynder
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
Avatar billede cmau Nybegynder
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>';

}
?>
Avatar billede cmau Nybegynder
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.
Avatar billede morteeart Nybegynder
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);
Avatar billede morteeart Nybegynder
06. januar 2005 - 13:34 #7
og forresten så virker dette her kun til jpg filer.
Avatar billede cmau Nybegynder
06. januar 2005 - 13:34 #8
resize("$_FILES['billede']['tmp_name']","../images/spil",125); hvor skal jeg smide den linje?
Avatar billede morteeart Nybegynder
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.
Avatar billede morteeart Nybegynder
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.
Avatar billede cmau Nybegynder
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>';

}
?>
Avatar billede cmau Nybegynder
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
Avatar billede morteeart Nybegynder
06. januar 2005 - 13:51 #13
og hvad er på linje 11 ? og du har forresten glemt at smide funktionen ind :P
Avatar billede cmau Nybegynder
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.
Avatar billede cmau Nybegynder
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 );
Avatar billede morteeart Nybegynder
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
Avatar billede morteeart Nybegynder
06. januar 2005 - 14:22 #17
og her er et link til en god gdlib tutorial

http://udvikleren.dk/article.php?aid=138&techid=6
Avatar billede cmau Nybegynder
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?
Avatar billede cmau Nybegynder
06. januar 2005 - 14:37 #19
Jeg opretter et nyt spg om det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester