Avatar billede tobbersecondary Nybegynder
04. maj 2008 - 17:00 Der er 3 kommentarer

Fejl ved upload af store filer

Jeg har nu kæmpet uafbrudt i adskillelige dage for at løse et problem i forbindelse med (http) upoload af store filer (+100 MB) til et website, jeg har lavet.

Problemet er, at når jeg forsøger at uploade store filer, så "dør" processen og IE7 giver meddelelsen "Internet Explorer kan ikke vise websiden."

Sitet er programmeret i PHP/MySQL og kører på en Apache-server på et webhotel hos Servage.net.
Jeg har lavet flg. htacces-fil for at overskrive default-indstillingerne og tjekket om de ønskede ændringer er opdateret i php.ini ved at kalde phpinfo. Alt er tilsyneladende i orden.

Min .HTACCESS-fil ser sådan ud:

php_value upload_max_filesize 200M
php_value post_max_size 500M
php_value memory_limit 1G
php_value max_input_time 10800
php_value max_execution_time 10800
php_value session.gc_maxlifetime 10800


Fejlfinding:
Jeg mener at kan udelukke programmeringsfejl i formular + script. Jeg har som alternativ til mit eget prøvet diverse færdige scripts, som alle laver samme fejl under upload (af store filer).

Hvis jeg uploader tilsvarende store filstørrelser under Localhost, er der ingen problemer.

Jeg har især brugt en bestemt video-fil til mine forsøg. Det er en flv-fil på 127 MB. Upload-processen dør konsekvent efter 38-39 sekunder.

Ved upload af en fil på 147 MB dør upload-processen efter 41-42 sekunder.
Det virker derfor som om, at tidsintervallet (før fejlmeddelelse) forholder sig relativt til filstørrelsen.
Jeg er derfor ret sikker på, at det er et parameter i php.ini-filen, som sætter en tidsbegrænsning af en slags.

Jeg vil blive dybt taknemlig, hvis nogen kan løse mit problem.
Hvis du har behov for flere detaljer, skal du bare sige til.


På forhånd tak
Tobber
Avatar billede olebole Juniormester
04. maj 2008 - 17:26 #1
<ole>

Så vidt jeg husker, kan du ikke override max-upload hos servage - og det ville du sandelig heller ikke kunne, hvis det var mig, der administrerede serveren  =)

Er det mod forventning kun et spørgsmål om time limit, fungerer denne normalt:
    http://dk.php.net/manual/en/function.set-time-limit.php

- men det burde du jo allerede have taget højde for i din htaccess. Prøv at lave et script, der tager f.eks. 50 sekunder at afvikle, uden der uploades en fil. Så kan du se, om det er et spørgsmål om timeout eller for stor upload. Prøv f.eks:

<?php
set_time_limit(120);
$a = array();
for ($i=0; $i<60; $i++) {
    $a[] = $i." -> ".time();
    sleep(1);
}
print implode("\r\n<br>\r\n", $a);
?>

/mvh
</bole>
Avatar billede tobbersecondary Nybegynder
04. maj 2008 - 17:41 #2
Hej Ole

Tak for dit indlæg.
Jeg har prøvet at afvikle dit script-eksempel. Det virker både på localhost og webhost. Konklusionen er vel så, at det ikke er en time.limit-begrænsning. Men hvad er det så? Har du nogen gode bud?

-Tobber
Avatar billede tobbersecondary Nybegynder
04. maj 2008 - 19:30 #3
En lille tilføjelse:
Når upload-processen "dør" skriver:

Opera: Forbindelse lukket af serveren
Firefox: Forbindelsen til serveren blev nulstillet, mens siden blev indlæst.

Måske kan det give nogen et "hint" om, hvad fejlen skyldes.
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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