Avatar billede nicocarlos Nybegynder
02. januar 2005 - 23:00 Der er 9 kommentarer og
1 løsning

Upload problem

Har følgende script og der sker intet når man prøver at uploade, hvad kan fejlen være??

<html>
<head>
<LINK HREF="styles/style1.css" Rel=stylesheet>
</head>
<body>
<?php
$extlimit = "ja";
$limitedext = array(".jpg",".jpeg");
$sizelimit = "ja";
$sizebytes = "15000";
$sti = "srv/www/htdocs/web1/html/gu-game/";
$absolute_path = $sti."profilbillede";
$idea= "1";


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

if (file_exists($absolute_path."/".$id."".$ext)) {
  die("The picture allready exsist");
}

if (($sizelimit == "ja") && ($file_size > $sizebytes)) {
  die("The picture is too large. Maximum =  15 kb.");
}


if (($extlimit == "ja") && (!in_array($ext,$limitedext))) {
  die("Wrong filetype, only jpg and jpeg is avalible atm");
}

@copy($file, $absolute_path."/".$idea."".$ext) or die("The file couldn't be copyed to the server ".$absolute_path."/".$idea."".$ext);

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

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

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

    #Beregn højden i forhold til bredden
    $tn_h = "40";
           
    #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."/".$idea."".$ext, "95");
   
    #slet "midlertidige" filer fra serveren.
    imagedestroy($dst_img);
} else {
  print "try again";
}
echo "<p />";
echo $file_name." was uploaded";

}
?>

<form method=POST action="avatarupload.php" enctype=multipart/form-data>
<p>Choose a picture:<br>
<input type=file name=file size=30>
<p><button name=submit type=submit value=Upload>
Upload
</button>
</form>
</body>
</html>
Avatar billede erikjacobsen Ekspert
02. januar 2005 - 23:30 #1
Måske
if($_POST['submit']=="Upload"){

det er ikke verdens nyeste uploadscript, du har gravet frem der. Du bør fx
også benytte move_uploaded_file
Avatar billede nicocarlos Nybegynder
03. januar 2005 - 09:56 #2
nej men det er meget simpelt det jeg skal bruge det til.

Nu ryger den ned til fejlen "try again"
} else {
  print "try again";

Det er da ret underligt kan da ikke se at der er noget galt med formen.
Avatar billede erikjacobsen Ekspert
03. januar 2005 - 10:00 #3
Jo, men det et jo nok for gammelt alligevel. Det ser ud til du skal hele vejen rundt og
erstatte alle forekomster af $variabelnavn med $_POST[...noget...] eller $_FIlES[...noget...]
fordi du nu anvender en moderne installation af PHP, og scriptet er skrevet til
en stenalderversion af PHP.

Men det er da en vej frem.... hvis du absolut vil.
Avatar billede nicocarlos Nybegynder
03. januar 2005 - 10:04 #4
Hvordan kan jeg evt. rettet det til så det bliver "nyere" :)
Avatar billede erikjacobsen Ekspert
03. januar 2005 - 10:10 #5
Det er ikke noget du lige klarer på 30 sekunder. Kan være der er noget nyere i en af artiklerne:
http://www.eksperten.dk/artikler/Programmering/Script/PHP/
Det vil i hvert fald være min anbefaling.
Avatar billede nicocarlos Nybegynder
03. januar 2005 - 11:29 #6
okay nu har jeg prøvet et andet:

<?
function imageresize($sourcefile,$maxwidth,$maxheight,$destinationfile=false)
{
$types=Array();
$types[1]='gif';
$types[2]='jpeg';
$types[3]='png';
$types[6]='wbmp';
list($width,$height,$type)=getimagesize($sourcefile);
$type_name=$types[$type];
$imagecreatefromtype='imagecreatefrom'.$type_name;
$imagetype='image'.$type_name;
if(!function_exists($imagecreatefromtype) || !function_exists($imagetype))
{
return false;
}
if($img_src=$imagecreatefromtype($sourcefile))
{
$ratio_height=$maxheight/$height;
$ratio_width=$maxwidth/$width;
$ratio=min($ratio_width,$ratio_height);
$newwidth=$width*$ratio;
$newheight=$height*$ratio;
// $img_dst=imagecreatetruecolor($newwidth,$newheight);
$img_dst=imagecreate($newwidth,$newheight);

// imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagecopyresized($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
if($destinationfile==false)
{
//header("Content-type: image/jpeg");
$imagetype($img_dst);
}
else
$imagetype($img_dst,$destinationfile);
imagedestroy($img_dst);
return true;
}
else
{
return false;
}
}
//Her skal filen flyttes fra
$fra= $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext= strtolower(end(explode(".", $_FILES['fil']['name'])));

//Hvis filen er et jpg, jpeg eller gif billede
if($ext == "jpg" || $ext == "jpeg" || $ext == "gif")
{
$tid= time();
$billedeid=1;
//Her giver vi billedet et andet navn, så der ikke kommer to ens navne&#8230;
$nytNavn = $billedeid.$ext;

//Her er vores destination
$til= "../upload/billeder/large/" . $nytNavn;

//Her sker det magiske:
move_uploaded_file($fra, $til);

//Her resizer vi billedet med Xyborx&#8217;s funktion
$newSizeWidth= 75;
$newSizeHeight= 75;
$newSizeDes= "../upload/billeder/small/" . $nytNavn;
imageresize($til, $newSizeWidth, $newSizeHeight, "../upload/billeder/small/" . $nytNavn);

//Her ligges oplysningerne ind databasen &#8211; huske at connecte til den!
}

header("Location: billeder.php");

?>

Men mine filer kommer til at ligge som underligtjpg der skulle have været et punktum så den kan ses some jpg fil. Og desuden har jeg da givet den id = 1 så billedet skulle have været gemt som 1.jpg
Avatar billede erikjacobsen Ekspert
03. januar 2005 - 11:38 #7
$nytNavn = "$billedeid.$ext";
Avatar billede nicocarlos Nybegynder
03. januar 2005 - 16:43 #8
takker :)  - problemet er løst - læg svar
Avatar billede erikjacobsen Ekspert
03. januar 2005 - 19:02 #9
Ingen point til mig, tak. Jeg samler ikke på dem.
Avatar billede nicocarlos Nybegynder
03. januar 2005 - 22:24 #10
okay tak
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