Updownload- co dopisać?

0

Mam jak zwykle problem. Poniższy kod przedstawia updownload. Chce aby można przesyłać pliki tylko .jpg i.gif i *.png. Co i gdzie powinienem dopisać aby było ok?

<?php
if( is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
{
  $strUploadDir = '/folder/' . $_FILES['userfile']['name'];
  if( move_uploaded_file( $_FILES['userfile']['tmp_name'], $strUploadDir ) )
  {
    echo 'Plik został pomy¶lnie uploadowany! <br />';
  }
  else
  {
    echo 'Upload pliku nie powiódł się!';
  }
  echo 'Dodatkowe informacje o uploadowanym pliku: <pre>' . print_r( $_FILES, true ) . '</pre>';
}
else
{
  echo 'Wyst±pił bł±d podczas wysyłania pliku na serwer!';
}
?>

? Prosze o pomoc.

0

updownload? :| matko co za potwór, skąd wziąłeś takie słowo?

co do problemu, może:

$aext = array('jpeg','.jpg','.gif','.png');

if ( !in_array( strtolower( substr( $_FILES['userfile']['name'], -4, 4) ) , $aext) )
    die("Nieprawidłowy typ pliku");
0

Wiesz..... sam.... ale nie pamietałem jak sie pisze normalnie. Dzięki... ide zopbaczyć czy działa.

0
Kooba napisał(a)

co do problemu, może:

$aext = array('jpeg','.jpg','.gif','.png');

if ( !in_array( strtolower( substr( $_FILES['userfile']['name'], -4, 4) ) , $aext) )
    die("Nieprawidłowy typ pliku");

Ło matko, a co jak będzie 5 liter w rozszerzeniu? albo dwie?

To już lepiej

$aext = 'jpeg|jpg|gif|png';

if ( !preg_match("/\.(?:$aext)$/i", $_FILES['userfile']['name']))
    die("Nieprawidłowy typ pliku");
0
$aext[0] = 'image/jpeg';
$aext[1] = 'image/gif';
$aext[2] = 'image/png';
if(!in_array($_FILES['userfile']['type'], $aext)) die('Nieprawidłowy typ pliku');

Nie prościej?

0
Coldpeer napisał(a)
$aext[0] = 'image/jpeg';
$aext[1] = 'image/gif';
$aext[2] = 'image/png';
if(!in_array($_FILES['userfile']['type'], $aext)) die('Nieprawidłowy typ pliku');

Nie prościej?

ja nigdy tego sposobu nie używam bo nigdy mi się nie chce sprawdzić czy content-type pobiera z jakiejś tablicy na serwerze czy z informacji z nagłówka (bo jeśli to drugie to może to być naprawdę niebezpieczne)

0

content-type jest pobierane z nagłówka, tak więc metoda Coldpeera powoduje powstanie ślicznej dziury ]:->

0

pathinfo() jeszcze mozna uzyc, poza tym mime_content_type(), albo http://pl.php.net/manual/pl/ref.fileinfo.php

ale i tak mysle, ze lepiej tak, jak napisał M, a w ogole lepiej chyba by bylo jeszcze sprawdzac naglowki przesylanych plikow (zeby zamiast gifka nie wyladowal na serwerze zipek)

EDIT: naglowki w sensie pierwsze bajty

0

Dzięki all za all odpowiedzi! Thanks

1 użytkowników online, w tym zalogowanych: 0, gości: 1