Avatar billede subit Nybegynder
31. maj 2006 - 23:18 Der er 8 kommentarer

Upload billede script virker ikke?

Hej jeg har denne kode

<?php
$extAll=array(".jpg",".gif");
$ext=strtolower(substr($billede_name,strrpos($billede_name,".")));
if (!in_array($ext,$extAll)){
echo "Ugyldig fil";
} else {
copy ($billede,"files/$billede_name");unlink($billede);
}
?>


og bruger denne til at uploade billedet

<Form Action="upload.php" Method="post" enctype="multipart/form-data">
<Table Cellpadding=0 Cellspacing=0 Border=0>
<Td>Billede:</Td>
<Td><Input Type="File" Name="billede"></Td>
</Tr>
<Tr>
<Td Colspan=2 Align=Center><Input Type="Submit" value="OK"></Td>
</Tr>
</Table>
</Form>


men ligemeget hvilken fil jeg uploader siger den ugyldig fil hvorfor ? :S
Avatar billede tdafoobar Nybegynder
31. maj 2006 - 23:23 #1
hvis det er hele din kode, vil den ALDRIG virke :-)
Avatar billede subit Nybegynder
31. maj 2006 - 23:24 #2
ok hvorfor ikke? :) Hva mangler der (skal siges jeg fik den fra http://www.eksperten.dk/spm/345702 hvor det lader til den virker
Avatar billede tdafoobar Nybegynder
31. maj 2006 - 23:28 #3
fordi at du hverken bruger $_FILES eller andre former for POST handling. Find dig en fin begynder tutorial istedet for den stump kode der, den er værdiløs.

F.eks. http://www.zend.com/manual/features.file-upload.php
Avatar billede subit Nybegynder
31. maj 2006 - 23:39 #4
well, kan ikk få den til at virke. kan man ikke bare få en kode der virker som den skal istedet for alt det tutorial. skal jo bare bruge en lille upload-funktion :)
Avatar billede tdafoobar Nybegynder
31. maj 2006 - 23:46 #5
Noget I stil med dette burde virke, har ikke testet det.

<?php
if(isset($_POST['upload']))
{
  $uploadfile = $_FILES['userfile']['name'];
  $ext = strtolower(substr($$uploadfile,strrpos($uploadfile,".")));
  $allowedTypes = array('gif','jpg');
  if(in_array($ext,$allowedTypes))
  {
    if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
    {
      die('Error!');
    }
  }
  else
  {
    die('Wrong type');
  }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title> Upload Billeder </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  </head>
  <body>
    <div>
      <h1>Upload filer</h1>
      <form action="" method="post" enctype="multipart/form-data">
      <fieldset>
        <legend>Upload file</legend>
        <label>Fil:</label><br>
        <input type="file" name="userfile"><br>
        <br>
        <input type="submit" value="Upload" name="upload">
      </fieldset>
      </form>
    </div>
  </body>
</html>
Avatar billede tdafoobar Nybegynder
31. maj 2006 - 23:46 #6
$ext = strtolower(substr($$uploadfile,strrpos($uploadfile,".")));
skal rettes til
$ext = strtolower(substr($uploadfile,strrpos($uploadfile,".")));
Avatar billede subit Nybegynder
31. maj 2006 - 23:54 #7
well, den siger også bare "Wrong type" :S
Avatar billede oldnick Nybegynder
06. juni 2006 - 11:25 #8
Hej
Her er et script som jeg selv bruger, det er lavet så det automatisk resizer billede til en angivet størrelse. I dette eks. 640px i bredden. Højden tilpasser sig de rigtige propertioiner.

Se om du kan bruge det... :)

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}

$uploadDir = "/photo/"; //Husk mappen skal chmod'es til 644, stien til mappen hvor billederne skal gemmes.
$maxHeight = 640; //Her kan du instille hvor stort billede skal være
$maxWidth  = 640; //Her kan du instille hvor stort billede skal være
$maxSize  = 4; //Angives i MB
$pics      = array('jpeg','jpg','jpe'); //Hvilke filtyper vil vi godtage?

$maxSize  = $maxSize * 1024 * 1024;

if($_FILES['userFile']['size'] > 0)
{
    $uploadfile = $uploadDir . basename($_FILES['userFile']['name']);
 
    if($_FILES['userFile']['size'] > $maxSize)
    {
        echo "Dit billede er for stort, prøv med mindre...";
        exit();
    }
 
    $ext = strtolower(end(explode('.',$_FILES['userFile']['name'])));
 
    if(!in_array($ext,$pics))
    {
        echo "Forkert billede format, prøv med et andet...";
        exit();
    }

    if(!resize( $_FILES['userFile']['tmp_name'], $uploadfile, $maxWidth, $maxHeight ))
    {
        echo "Det fejlede at resize billedet : " . $uploadfile . "! Prøv igen<br />";
    }
    else
    {   
        echo '<p>Billede er nu Tilf&oslash;jet</p>';
    }
}
?>
<FORM enctype="multipart/form-data" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<h5>(Billede m&aring; max. v&aelig;re: 1024x768px eller 1mb)</h5>
<label class="add">Upload: </label><br />
<input name="userFile" type="file" class="file" /><br />
<input type="submit" name="Submit" value="Add" id="admin_send" />
</FORM>
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