Hey,
Via php en zlib wil ik grote bestanden (in het totaal tot 1gb) inpakken in één zip bestand. Hiervoor gebruik ik de Ziparchive class van php. Een voorbeeld van mijn code:
Wanneer ik meerdere bestanden met een totale grootte van 500mb wil inpakken in een zip bestand, krijg ik elke keer een Internal Server Error. Echter krijg ik deze melding al voordat het zip bestand is aangemaakt en nadat de error zichtbaar is wordt het zipproces voortgezet (dit is te zien op de ftp server).
Wat ik totaal niet snap en het antwoord hierop met geen mogelijkheid gevonden krijg, is waarom er een Internal Server Error ontstaat, nóg voordat het zipproces is afgerond én het zipproces wel wordt voortgezet. Het aangemaakte zip bestand is niet corrupt en bevat de correcte data.
Mijn php.ini instellingen zijn ruimschoots voldoende ingesteld, namelijk:
max_execution_time = 7200;
max_input_time = 7200;
max_input_nesting_level = 64;
memory_limit = 256M;
upload_max_filesize = 2000M;
post_max_size = 2030M;
Ook in de server logs (access log, etc.) is niets te vinden over de foutmelding (de foutmelding heeft ook niet dezelfde opmaak als een normale Internal Server Error (500)).
Heeft iemand enig idee hoe dit kan en wat mogelijk een oplossing is of in welke richting ik moet zoeken?
Bedankt
Via php en zlib wil ik grote bestanden (in het totaal tot 1gb) inpakken in één zip bestand. Hiervoor gebruik ik de Ziparchive class van php. Een voorbeeld van mijn code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| <?php $zip = new ZipArchive(); if(!$zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE)) { return false; } $delete_files = array(); foreach($valid_files as $file) { if($zip->addFile($file['src_name'],$file['dest_name'])) $delete_files[] = $file['src_name']; } $success = ($zip->status == 0) ? true : false; $zip->close(); if(count($delete_files) > 0) { foreach($delete_files AS $value) { @unlink($value); } } if($success AND file_exists($destination)) return true; else return false; ?> |
Wanneer ik meerdere bestanden met een totale grootte van 500mb wil inpakken in een zip bestand, krijg ik elke keer een Internal Server Error. Echter krijg ik deze melding al voordat het zip bestand is aangemaakt en nadat de error zichtbaar is wordt het zipproces voortgezet (dit is te zien op de ftp server).
Wat ik totaal niet snap en het antwoord hierop met geen mogelijkheid gevonden krijg, is waarom er een Internal Server Error ontstaat, nóg voordat het zipproces is afgerond én het zipproces wel wordt voortgezet. Het aangemaakte zip bestand is niet corrupt en bevat de correcte data.
Mijn php.ini instellingen zijn ruimschoots voldoende ingesteld, namelijk:
max_execution_time = 7200;
max_input_time = 7200;
max_input_nesting_level = 64;
memory_limit = 256M;
upload_max_filesize = 2000M;
post_max_size = 2030M;
Ook in de server logs (access log, etc.) is niets te vinden over de foutmelding (de foutmelding heeft ook niet dezelfde opmaak als een normale Internal Server Error (500)).
Heeft iemand enig idee hoe dit kan en wat mogelijk een oplossing is of in welke richting ik moet zoeken?
Bedankt
[ Voor 12% gewijzigd door radem205 op 16-11-2010 21:02 ]