Avatar billede vipcom Nybegynder
26. november 2005 - 11:08 Der er 13 kommentarer

upload af "stor" fil virker ikke

Hej

Jeg har lavet mig en lille uploader i php (koden står til sidst i dette spm.). Den fungere sådan set fint, når jeg bare holder mig til de små filer (250 kb). Men hvis jeg prøver at oploade en filer på 1,4 mb, så siger den, at den ikke kan finde filen der står i action="" i formen.

Umildbart ville jeg sige det må være noget med opsætningen på serveren, hvor store filer den acceptere. Er det ik rigtigt nok? Så vil jeg gerne have lidt hjælp til hvordan jeg konfigurer min server, sådan den kan uploade større filer.

Serveren:
- linux (RedHat 9.0 - styres via webadmin)
- apache 2.0.40
- php 4.2.2

Filen med formen:
<form enctype="multipart/form-data" method="post" action="loggedin.php?page=filer/add_action.php">
<table border="0" cellpadding="3" cellspacing="0" class="bt">
    <input type="hidden" name="MAX_FILE_SIZE" value="3000000000" />
    <input type="hidden" name="sti" value="<?php echo $idv1; ?>">
    <input type="hidden" name="antal" value="<?php echo $antal; ?>">
    <?php
    for($i = 1; $i <= $antal; $i++){
        ?>
        <tr>
            <td>Fil #<?php echo $i; ?>:</td>
            <td>
                <input name="fil<?php echo $i; ?>" id="fil<?php echo $i; ?>" type="file"
                class="blur" onFocus="this.className='focus';" onBlur="this.className='blur';">
            </td>
        </tr>
        <?php
    }
    ?>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="Opload" class="out" onMouseDown="this.className='out over down';" onMouseOut="this.className='out';" onMouseUp="this.className='out over';" onMouseOver="this.className='out over';" /></td>
    </tr>
</table>
</form>

Filen med php, som uploader den:
if(!move_uploaded_file($_FILES['fil'.$i]['tmp_name'], $target_path[$i]) && $_FILES['fil'.$i]['tmp_name']){
    header("Location: loggedin.php?page=filer/start.php&&msg=Der opstod et problem under oploadningen af filen/filerne, kontakt webmasteren!0");
    exit();
}
Avatar billede erikjacobsen Ekspert
26. november 2005 - 11:32 #1
Du kan prøve at sætte disse op i din php.ini

max_execution_time = 30    ; Maximum execution time of each script, in seconds
max_input_time = 60    ; Maximum amount of time each script may spend parsing request data
memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)


upload_max_filesize = 2M
Avatar billede vipcom Nybegynder
26. november 2005 - 14:54 #2
Ok. Har jeg lige gjort.

max_execution_time = 80    ; Maximum execution time of each script, in seconds
max_input_time = 60    ; Maximum amount of time each script may spend parsing request data
memory_limit = 255M      ; Maximum amount of memory a script may consume (8MB)
upload_max_filesize = 255M

Men det virkede ikke.

Hvis det var en af disse, ville php så ikke også kommer med en fejl meddelse? Det gør den nemlig ikke. Browseren visere bare "Siden kunne ikke vises". Siger det jer noget?

Håber der er nogen der kan løse mit problem.
Avatar billede erikjacobsen Ekspert
26. november 2005 - 15:11 #3
Det er da muligt den siger noget. Hvis du får "Siden kan ikke vises" i IE dækker det tit over at den skjuler den rigtige fejl for dig. Brug en rigtig browser, eller indstil IE til at vise fejl-beskeden.
Avatar billede vipcom Nybegynder
26. november 2005 - 15:56 #4
Ok. Hvordan indstiller jeg IE til det?
Avatar billede erikjacobsen Ekspert
26. november 2005 - 15:59 #5
Det kan jeg ikke svare på. Men overvej http://getfirefox.com/
Avatar billede vipcom Nybegynder
26. november 2005 - 16:00 #6
Jeg prøvede lige at upload en fil, bare med opera denne gang. Og fuldstændig som du sagde, kom der en anden fejlmeddelse. Den skrev:

Request Entity Too Large
The requested resource
/vipsys1/login/loggedin.php
does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit.

Hvad skal jeg gøre?
Avatar billede erikjacobsen Ekspert
26. november 2005 - 16:04 #7
Du skal nok lige tjekke at du har rettet i den rigtige php.ini fil, altså den PHP rent faktisk læser fra.
Avatar billede vipcom Nybegynder
26. november 2005 - 17:27 #8
Når man har redigeret php.ini filen, skal man så genstarte apache før ændringerne træder i kraft? Det gjorde jeg nemlig ik. Jeg kan desværre ikke teste det lige nu, da jeg ikke sidder der hjemme ved serveren.

Hvis ik, er dette så den rigtige fil, som jeg redigere? etc/php.ini
Avatar billede erikjacobsen Ekspert
26. november 2005 - 17:33 #9
Det er nok en god idé at genstarte ;) 

Det er ikke til at vide om det er den. Det ser du ved at køre en:  phpinfo();
Avatar billede vipcom Nybegynder
26. november 2005 - 17:37 #10
Configuration File (php.ini) Path = etc/php.ini

men, så er der lige nogle andre...

Scan this dir for additional .ini files = /etc/php.d
additional .ini files parsed = /etc/php.d/imap.ini, /etc/php.d/ldap.ini, /etc/php.d/mysql.ini

Jeg skal kun redigere etc/php.ini, ik? Bare være lige glad med de andre, ik?
Avatar billede erikjacobsen Ekspert
26. november 2005 - 18:26 #11
Jow, det lyder rigtigt.
Avatar billede vipcom Nybegynder
01. december 2005 - 19:45 #12
Det har jeg gjort nu. Men den melder den samme fejl som før.
Avatar billede erikjacobsen Ekspert
01. december 2005 - 20:22 #13
Prøv med lidt mindre end 255M, fx. 50M. Det skulle være alt rigeligt til billeder på et par MB. Til gengæld kan du sætte timelimits er par gange eller 3 højere. Jeg mener ikke der er andre steder, der skal ændres.
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

IT-JOB