Avatar billede si. Nybegynder
02. september 2006 - 14:40 Der er 6 kommentarer og
2 løsninger

Upload script virker, men filnavn følger ikke med

Jeg fandt en uploads script herinde som virker, problemet er bare at filnavnet ikke følger med.
Når billedet er uploadet, så får jeg beskeden, at filnavn.jpg er uploadet.
Men kikker jeg i mappen online, så hedder den bare .jpg

Er der nogen der kan se fejlen i følgende script:

<?php
$extlimit = "ja";
$limitedext = array(".gif",".jpg",".png",".jpeg",".bmp");
$sizelimit = "nej";
$sizebytes = "15000";
$absolute_path = $sti."images";


if($submit=="Upload"){
  $dir = "dir";
if ($file != "") {
  $ext=strrchr($file_name,'.');
  $ext=strtolower($ext);

if (file_exists($absolute_path."/".$id."".$ext)) {
  die("Billedet eksisterer allerede");
}

if (($sizelimit == "ja") && ($file_size > $sizebytes)) {
  die("Billedet er for stort. Det må højest fylde 15 kb.");
}


if (($extlimit == "ja") && (!in_array($ext,$limitedext))) {
  die("Filen er en forkert filtype.");
}

@copy($file, $absolute_path."/".$id."".$ext) or die("Filen kunne ikke kopieres til serveren ".$absolute_path."/".$id."".$ext);

    #-+ Read the source image
    $src_img = ImageCreateFromJPEG($absolute_path."/".$id."".$ext);

    #Vælg bredden
    $tn_w = "160";

    #Hent billedets bredde og højde
    $imginfo = getimagesize($absolute_path."/".$id."".$ext);
    $org_w= $imginfo[0];
    $org_h = $imginfo[1];

    #Beregn højden i forhold til bredden
    $tn_h = floor($tn_w * $org_h / $org_w);
         
    #Sæt det nye billede
    $dst_img = imagecreatetruecolor($tn_w,$tn_h);
     
    #Ændre det!
    ImageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h);
             
    #Gem det!
    ImageJPEG($dst_img, $absolute_path."/".$id."".$ext, "95");
 
    #slet "midlertidige" filer fra serveren.
    imagedestroy($dst_img);
} else {
  die("Husk at vælge et Billede");
}
echo "<p />";
echo $file_name." blev uploaded";
mysql_query("UPDATE users SET billede='".$id."".$ext."' WHERE id='$id'");
}
?>

<form method=POST action=upload.php enctype=multipart/form-data>
  <p>Vælg et Billed:<br>
<input type=file name=file size=30>
<p><button name=submit type=submit value=Upload>
Upload
</button>
</form>
Avatar billede jakobdo Ekspert
02. september 2006 - 15:48 #1
Du skal kigge i disse 2 funktioner:

@copy($file, $absolute_path."/".$id."".$ext)
ImageJPEG($dst_img, $absolute_path."/".$id."".$ext, "95")

Er alle variabler sat korrekt?

Jeg ser ingen steder du bruger $_FILES['file']
Avatar billede si. Nybegynder
02. september 2006 - 18:01 #2
Jeg er ikke god til php, og evner ikke at gennemskue, om variablerne er sat korrekt.
Jeg har bare taget scripten som de endte med herinde http://www.eksperten.dk/spm/488366
Avatar billede shooka Nybegynder
02. september 2006 - 18:20 #3
Når du siger, du har taget det fra et andet spg på Eksperten, så går jeg ud fra, at det ikke behøver at passe til et bestemt webdesign. Prøv derfor:

Demo'er: http://foldergallery.jv2.net/Demo/

Download: http://foldergallery.jv2.net/Download/

Og hvis det endelig skulle være, så kan det let tilpasses.
Avatar billede si. Nybegynder
02. september 2006 - 22:43 #4
Tak for svarene!
Jeg har fundet et andet script, som også kan resize.

Læg lige begge en svar.

Forsat god weekend!
Avatar billede shooka Nybegynder
03. september 2006 - 00:18 #5
Her kommer et svar :)

Jo tak, og i lige måde...
Avatar billede jakobdo Ekspert
03. september 2006 - 13:34 #6
Svar!
Avatar billede jakobdo Ekspert
03. september 2006 - 15:05 #7
Takker for point.
Avatar billede shooka Nybegynder
03. september 2006 - 15:38 #8
Tak for point.
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