Avatar billede mrfunder Nybegynder
13. december 2008 - 00:36 Der er 1 kommentar

Ved ved move_uploaded_file

Kære eksperter.

Jeg modtaget fejlen, Warning: Wrong parameter count for move_uploaded_file() - idet jeg prøver at resize billedet inden jeg uploader det? Hvad gør jeg galt?

-- For ikke at skabe forvirring er det værd at nævne, at jeg resizer billedet som thumbnail efterfølgende upload.. Jeg ønsker at sikre billedet holdes inden for to størrelser.


$uploadDir        = './uploads/';
$thumbDir        = './thumbs/';
$thumbPrefix      = 'thumb_';
$normalHeight      = 410;     
$normalWidth      = 620;     
$thumbHeight      = 78;   
$thumbWidth      = 118;
$thumbQuality    = 85;


function resize( $filename, $newfilename, $maxw, $maxh, $quality=85 )
{
  $extension = getExtension($filename);
  switch($extension)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      $srcim = imagecreatefromjpeg( $filename );
      break;
    case 'gif':
      $srcim = imagecreatefromgif( $filename );
      break;
    case 'png':
      $srcim = imagecreatefrompng( $filename );
      break;
    default:
      return false;
  }
  $ow = imagesx( $srcim );
  $oh = imagesy( $srcim );
  $wscale = $maxw / $ow;
  $hscale = $maxh / $oh;
  $scale = min( $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 );
  switch($extension)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      imagejpeg( $dstim, $newfilename, $quality );
      break;
    case 'gif':
      imagegif( $dstim, $newfilename );
      break;
    case 'png':
      $png_q = floor( abs( $quality / 10 - 9.9 ) );
      imagepng( $dstim, $newfilename, $png_q );
      break;
    default:
      return false;
  }
  imagedestroy( $dstim );
  imagedestroy( $srcim );
  return file_exists($newfilename);
}




if($_FILES['file']['name'][$i]) {
               
                if(move_uploaded_file(resize($uploadDir . basename($_FILES['file']['tmp_name'][$i]), $uploadDir . basename($_FILES['file']['name'][$i]), $normalWidth, $normalHeight, 90))) {
               
                    if(resize($uploadDir . basename($_FILES['file']['name'][$i]), $thumbDir . $thumbPrefix . basename($_FILES['file']['name'][$i]), $thumbWidth, $thumbHeight, $thumbQuality)){
                        echo '<h3 style="color:green;">File ('.$file_name[$i].') uploaded and resized succesfully</h3>';
                        }else{
                        echo '<h3 style="color:red;">File ('.$file_name[$i].') uploaded succesfully, but resize failed</h3>';
                        }
                   
                    $uploaded=true;
                   
                } else {
                    $display_message.="Couldn't copy ".$file_name[$i]." to server.\n";
                }
            }
Avatar billede showsource Seniormester
13. december 2008 - 06:38 #1
Prøv først at uploade, derefter resize:

$filnavn = basename($_FILES['file']['name'][$i];
move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploadDir . $filnavn)
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