Avatar billede s0mmer Nybegynder
05. juni 2005 - 16:51 Der er 4 kommentarer og
1 løsning

Upload billeder til server

Hejsa,
Jeg har lavet et lille galleri script og jeg er nu igang med admindelen. Som admin skal man bl.a. kunne uploade billede til gallerier. Har aldrig rodet med en sådan opgave så er mere eller mindre på bar bund. Her er lidt kriterier:

- max størrlse på filen
- kun jpg
Avatar billede coderdk Praktikant
05. juni 2005 - 20:17 #1
Noget i denne stil:

<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
fil: <input type="file" name="upfil">
<input type="submit" value="upload">
</form>

og upload.php:

<?php

  $hvorhen = 'billeder/';
  $maxstr = 500000;

  if ( !empty( $_FILES['upfil'] ) && is_uploaded_file( $_FILES['upfil']['tmp_name'] ) )
  {                 
    $target = $hvorhen . basename( $_FILES['upfil']['name'] );
    if ( move_uploaded_file( $_FILES['upfil']['tmp_name'], $target ) )
    {           
      if ( filesize( $target ) > $maxstr )
      {
        unlink( $target );
        die( 'For stor! Max ' . $maxstr . ' bytes.' );
      }
      $inf = getimagesize( $target );
      if ( $inf[2] != 2 )
      {
        unlink( $target );
        die( 'Kun JPEG!' );
      }
    }
    else
    {
      die( 'Kunne ikke flytte filen.' );
    }
  }
  else
  {
    die( 'Du skal uploade en JPEG på max ' . $maxstr . ' bytes.' );
  }

?>

Du skal huske at ændre $maxstr og feltet i formen. Du kan altid slå funktionerne jeg bruger, op på php.net.
Avatar billede coderdk Praktikant
05. juni 2005 - 20:18 #2
Du får sikkert også brug for at resize billederne, til thumbnails etc.  Det kan du gøre med denne: http://php.coder.dk/resizeimg.php
Avatar billede s0mmer Nybegynder
05. juni 2005 - 20:29 #3
Har flg. kode:


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
fil: <input type="file" name="upfil">
<input type="submit" value="upload">
</form>
<?php

  $hvorhen = 'billeder/';
  $maxstr = 500000;

  if ( !empty( $_FILES['upfil'] ) && is_uploaded_file( $_FILES['upfil']['tmp_name'] ) )
  {                 
    $target = $hvorhen . basename( $_FILES['upfil']['name'] );
    if ( move_uploaded_file( $_FILES['upfil']['tmp_name'], $target ) )
    {           
      if ( filesize( $target ) > $maxstr )
      {
        unlink( $target );
        die( 'For stor! Max ' . $maxstr . ' bytes.' );
      }
      $inf = getimagesize( $target );
      if ( $inf[2] != 2 )
      {
        unlink( $target );
        die( 'Kun JPEG!' );
      }
    }
    else
    {
      die( 'Kunne ikke flytte filen.' );
    }
  }
  else
  {
    die( 'Du skal uploade en JPEG på max ' . $maxstr . ' bytes.' );
  }

?>
</body>
</html>

Og får flg. fejl:

Warning: move_uploaded_file(billeder/test.jpg): failed to open stream: Permission denied in d:\xxx\xxx\www\xxx\xxx\xxx\upload.php on line 23

Warning: move_uploaded_file(): Unable to move 'C:\WINNT\TEMP\php15D1.tmp' to 'billeder/test.jpg' in d:\xxx\xx\www\xx\xxx\xxx\upload.php on line 23
Kunne ikke flytte filen.
Avatar billede coderdk Praktikant
11. juni 2005 - 19:09 #4
Nu kender jeg ikke windows, men det lyder som om at webserveren ikke har rettigheder til at skrive til folderen, eller også eksisterer den ikke...
Avatar billede coderdk Praktikant
22. juni 2005 - 19:59 #5
Og måske skal

$hvorhen = 'billeder/';

være:

$hvorhen = 'billeder\';

Da det er windows? :)
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