[PHP] File upload probleem

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik heb een upload pagina gemaakt met een file upload mogelijkheid,
die ik zodra ze zijn ge-upload wegschrijf in een database.

Met bestanden kleiner dan 1mb gaat het goed, maar bestanden groter dan 1mb worden niet helemaal op de server gezet.
Dan gaat hij namelijk maar tot 1mb, en dan stopt hij.

Volgens mij heeft dit iets te maken met mysql, omdat ik op dezelfde server ook een andere pagina heb, die hetzelfde doet alleen geen mysql verbinding open heeft staan. Ik dacht dat het eraan lag dat de sql verbinding de hele tijd open stond, vanaf dat het script wordt geladen totdat hij helemaal geladen is, dus heb ik de timeout value in 600 seconden veranderd (was eerst 60)

De max file upload size in php heb ik op 25mb gezet, en in php ook de timeout values verhoogd naar 600sec (10minuten)

Ik require bovenaan het script trouwens een php file, die weer wat settings inlaadt, en de verbinding met de database tot stand brengt.
Die verbinding eindig ik weer na die require regel, en start ik weer zodra er een query wordt uitgevoerd, daarna stop ik hem weer, enz. Dit om te kijken of het misschien lag aan dat de mysql verbinding niet zo lang open kon zijn ofzo.
Maar dat mocht ook niet baten

Heeft iemand nog tips om iets te proberen waardoor het wel zou kunnen werken met grotere bestanden?

  • narotic
  • Registratie: Maart 2002
  • Laatst online: 02-11-2021
Controleer in php.ini (of met phpinfo()) het maximale geheugen gebruik van php. Wellicht staat deze op 1 MB. Zo ja, dan even wijzigen..

[ Voor 25% gewijzigd door narotic op 26-02-2004 19:45 ]

- = Step Into The Pit | Industrial Strength = -


Verwijderd

MySQL staat standaard geen packets toe van meer dan 1 mb. Je kunt dit aanpassen in my.cnf (onder gentoo: /etc/mysql/my.cnf). Variabele heet iets van max_packet_size.

Succes

Verwijderd

Afgezien daarvan zou ik nog eens goed nagaan of grote bestanden in mysql zetten nu wel de goede oplossing is. Ik heb er in iedergeval geen goede ervaringen mee (performance), en sla liever alleen de info op in mysql en het bestand gewoon via het filesystem.

[ Voor 4% gewijzigd door Verwijderd op 26-02-2004 20:52 ]


Verwijderd

staat de instelling van Apache misschien op maximaal een MB ontvangen via HTTP_POST?? tenminste, dat lijkt mij het logischte als ik jouw verhaal zo lees...

Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Verwijderd schreef op 26 februari 2004 @ 20:52:
Afgezien daarvan zou ik nog eens goed nagaan of grote bestanden in mysql zetten nu wel de goede oplossing is. Ik heb er in iedergeval geen goede ervaringen mee (performance), en sla liever alleen de info op in mysql en het bestand gewoon via het filesystem.
Dat lijkt me ook .. op die manier leg je alleen 't pad vast in de DB en de bestanden in 't filesystem ;)
Voor mij heeft dit iig als bijkomend voordeel dat de bestanden dus beschikbaar zijn via het bestandssysteem (en dus via ftp, etcetera)

Acties:
  • 0 Henk 'm!

  • CyberJack
  • Registratie: Augustus 2002
  • Laatst online: 03-09 14:36
Ja kan na je post de variable $_FILES uitlezen

PHP:
1
?><pre><? print_r($_FILES); ?></pre><?


Hierin kan je zien of je een error code hebt op de geuploade files..
hier vind je een lijst met error codes.

https://bottenberg.dev


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou zeggen probeer eerst eens of je script een ge-upload bestand kan opslaan in het filesystem, dan weet je gelijk of het upload gedeelte goed is. Daarna kan je je dan helemaal richten op het bestand in mysql krijgen.
Nu kan het aan mysql liggen, maar misschien gaat het bij de upload al fout...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik upload uiteraard eerst het bestand naar de server, en als hij er helemaal op staat gaat hij pas naar de database, maar al voordat hij naar de database gaat gaat hij fout (voordat hij dus helemaal is geupload, want hij load maar 1 mb up dan stopt hij)

ik heb een formpje gemaakt met alleen een input=file dingetje en submit button, en als ik dan kijk dan doet hij het wel gewoon goed met grote bestanden.

dus misschien komt het doordat ik een paar wysiwyg editors erin heb staan dat die rare dingen doen tijdens het uitvoeren van het script.

even kijken of het daar aan ligt

Acties:
  • 0 Henk 'm!

  • om3ega
  • Registratie: Maart 2001
  • Laatst online: 21-09 00:11
Als je redhat gebruikt moet je eens kijken naar een file die php.conf heet in je

/etc/httpd/conf.d

Daar staat namelijk ook een soort van upload limiet die weer de php.ini overruled..

:)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
al die upload file en timeout dingen heb ik al opgehoogd
daarbij, als ik het in een ander bestandje zet waar alleen een form in zit met upload file dingetje, dan werkt het wel..

dus het zal wel aan een componentje liggen die ik gebruik in de pagina, of aan de include bestandjes

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oh,
ik was vergeten dit erbij te zetten:
<input type="hidden" name="MAX_FILE_SIZE" value="25000000">
|:(

maar nu werkt het :)
Pagina: 1