Avatar billede itsnedkeren Nybegynder
17. september 2007 - 21:00 Der er 8 kommentarer

Maxsimal filstørrelse - PHP Upload Script?

Hej Alle

Jeg har hentet et script som var postet herinde, jeg vil meget gerne have hjælp til at begrænse filstørrelsen på uploads.

På forhånd tak.

Kode:


<?php
$numbersOfFiles = 3; //Hvor mange filer skal man kunne uploade pr gang?
$uploadDir = 'files/'; //Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','gif','png'); //Hvilke filer vil vi acceptere bliver uploadet?

//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
    for($i = 0; $i < $numbersOfFiles; $i++)
    {
      //Har vi en fil?
      if(is_uploaded_file($_FILES['myFile']['tmp_name'][$i]))
      {
        //Filendelse
        $extension = strtolower(pathinfo($_FILES['myFile']['name'][$i],PATHINFO_EXTENSION));
     
        //Er filen en af de filer vi gerne vil have?
        if(in_array($extension,$allowedFileTypes))
        {
          //Vi flytter filen fra tmp til vores UPLOADDIR
          if(move_uploaded_file($_FILES['myFile']['tmp_name'][$i],$uploadDir . basename($_FILES['myFile']['name'][$i])))
          {
            echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name'][$i]).') Din fil(er) er uploadet!!</h3>';
          }
          else
          {
            echo '<h3 style="color:red;">Fejl - Din fil blev ikke uploadet!: '.basename($_FILES['myFile']['name'][$i]).'</h3>';
          }
        }
        else
        {
          echo '<h3 style="color:red;">Forkert filtype - Tilladte filertyper er: ('.implode(',',$allowedFileTypes).')</h3>';
        }
      }
  }
}

//Vores form
echo '<form action="upload.php" method="post" enctype="multipart/form-data">';
for($i = 0; $i < $numbersOfFiles; $i++)
{
    echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile['.$i.']"><br />';
}
echo '<input type="submit" name="myUpload" value="Upload fil">';
echo '</form>';

?>
Avatar billede itsnedkeren Nybegynder
17. september 2007 - 21:04 #1
Tilføjelse:

Jeg vil gerne have max fil størrelse til 500MB.

Hvis det er nogen hjælp har en pakke installation af Apache,Mysql m.m. fra XAMPP. Jeg ved ikke om der er noget med filstørrelsen der skal ændres andetsteds(konfiguration el.lign).
Avatar billede itsnedkeren Nybegynder
17. september 2007 - 21:18 #2
Jeg har nu været i php.ini og ændre følgende:

; Maximum allowed size for uploaded files.
upload_max_filesize = 500M

...og genstartet Apache serveren.

Virker stadig ikke :(
Avatar billede itsnedkeren Nybegynder
17. september 2007 - 21:41 #3
Hmmm har nu prøvet at uploade en 300MB fil, begrænsningen er 500MB. Den står bare og loader på siden et minuts tid, hvor den derefter stopper. Filen er ikke blevet uploadet :( Så jeg tror måske det er noget konfiguration af Apache den er gal med og ikke scriptet??
Avatar billede bavingo Nybegynder
17. september 2007 - 23:31 #4
Jeg tror faktisk ikke det er muligt at uploade så store filer gennem PHP. Det vil simpelthen blive ustabilt.
Min grænse til filer er 16MB det er lige tilpas og uploadet crasher sjældent.

Må jeg spørge hvad du vil med scriptet?
Avatar billede a1a1 Novice
17. september 2007 - 23:36 #5
500 mb upload på et min? har du en upload hastighed xx GB?

du har vel et option på "script timeout" (laver selv kun asp/asp.net), men 500mb på 1min.??
Avatar billede itsnedkeren Nybegynder
18. september 2007 - 09:25 #6
#bavingo

Scriptet skal bare bruges så der kan uploades filer, ikke andet. Jeg har før haft en upload server stående, som sagtens kunne modtage filer på 500MB+. Så det kan lade sig gøre, jeg kan bare ikke se hvorfor dette ikke virker.

#a1
Jeg tror du misforstår, når jeg forsøger at uploade en fil på 300MB så står siden bare og loader, der sker ikke rigtigt noget. Efter ca. et minut så afbryder serveren forbindelsen og der sker ikke mere. Men jeg vil da kigge på noget timeout.
Avatar billede itsnedkeren Nybegynder
18. september 2007 - 17:15 #7
; Maximum size of POST data that PHP will accept.
post_max_size = 300M

^^ ændrede dette i PHP.INI, min server kan nu modtage filer på op til 500MB :)
Avatar billede itsnedkeren Nybegynder
18. september 2007 - 17:16 #8
; Maximum size of POST data that PHP will accept.
post_max_size = 500M


^^ Sådan der selvfølgelig hehe
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