[PHP] Probleem met uploaden grote bestanden*

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ondervind een probleem bij het uploaden van grote bestanden naar de server. Op mijn localhost kunnen bestanden >10Mb worden geupload.
Als ik het op het web ga doen, kan ik geen bestanden uploaden die groter zijn dan enkele MB's.

Ik heb mijn provider gevraagd hoe ik dit kan oplossen. Ik moest een php.ini bestand maken en in hun map PRIVATE zetten. Dit zou voor de hele site werken. Het php.ini bestand ziet er zo uit:

upload_max_size = 100MB
max_input_time=100000
max_execution_time=100000
post_max_size = 100MB

Maar het maakt geen verschil uit, grotere bestanden kunnen nog steeds niet geupload worden. Ik heb eens verder gegoogled, en daar werd vooral gesproken dat .htaccess moest worden aangepast, met dezelfde 4 regels als hierboven.
Maar zoals je als zou raden: ook dit maakt geen verschil.

Wat zou de oorzaak kunnen zijn dat ik geen grotere bestanden kan uploaden naar mijn server? Ik ben erg benieuwd :)

Grts Ferry

Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 06-09 20:35

Wijnbo

Electronica werkt op rook.

Nu heb ik echt 0 verstand van PHP en Apache, maar moet het niet 100M zijn i.p.v. MB?

Acties:
  • 0 Henk 'm!

  • Giant87
  • Registratie: Juni 2004
  • Laatst online: 17-09 13:32
Probeer eens een andere browser.

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Probeer deze tags eens:
upload_max_filesize = 100M (niet MB)
max_execution_time = 0
post_max_size = 100M

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Giant87 schreef op zondag 24 augustus 2008 @ 16:23:
Probeer eens een andere browser.
Ik heb zowel in IE als FF getest, beiden geen verschil, zou ook niet mogen denk ik.
Megamind schreef op zondag 24 augustus 2008 @ 16:26:
Probeer deze tags eens:
upload_max_filesize = 100M (niet MB)
max_execution_time = 0
post_max_size = 100M
Ik heb die tag zowel in php.ini als de .htaccess gezet. Met de php.ini kan ik nog steeds geen grote bestanden uploaden. Als ik die code in de .htaccess zet, krijg ik een itnernal server error :S
Uiteraard heb ik de tag gebruikt zonder je commentaar (niet MB).


In welk bestand moet je de tag normaal gesproken zetten om grote files te handelen?

Iemand nog raad voor mijn situatie? :P

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Je kan ook dit aan het begin van je script zetten:
[php]
ini_set("upload_max_filesize","100M");
etc
[/php]

Nee kan niet.

Hoe zie je .htaccess eruit?

php_value upload_max_filesize 20M

?

[ Voor 30% gewijzigd door Megamind op 24-08-2008 17:31 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
[b]

Hoe zie je .htaccess eruit?

php_value upload_max_filesize 20M

?
Dit is mijn hele .htaccess:

ErrorDocument 404 /pagina/404.php
php_value upload_max_filesize 100M
php_value max_execution_time 800
php_value upload_max_size 100M

Gr. Ferry

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is momenteel nog niet gelukt met het uploaden van grote bestanden.
Ik heb geen duidelijkheid of ik de codetag in de php.ini moet zetten of in de .htaccess (en in welke map ik ze het beste kan zetten).

En ik begrijp niet waarom de codetage niet functioneert. De php code in het paginascipt is 100%, op de localhost werkt het immers, en kleine bestanden gaan ook goed op de internet server.
Alleen de grote bestanden (>5MB) niet.

Grts Ferry

Acties:
  • 0 Henk 'm!

Verwijderd

Als je nou eerst eens een scriptje maakt die de huidige waardes kan uitlezen en op het scherm zet, hiermee kun je dan controleren of je aanpassingen in de configuratie werken.

Het kan heel goed zijn dat je hoster helemaal geen support voor php.ini of htaccess heeft op jouw account.

Geloof dat die waarden ook uit te lezen zijn via de functie phpinfo();

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik heb even de topictitel aangepast, want de oude dekt de lading niet echt; wil je daar voortaan zelf een beetje op letten? :)

Problemen met bestandsgrootte. >> [PHP] Probleem met uploaden grote bestanden

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

zoals ik het begrijp gaat dit dus om een shared host. op een shared host kan je vaak wel zelf opties instellen in een php.ini of via .htaccess maar de provider kan vaak ook globaal een limiet instellen die dan uiteindelijk prioriteit neemt.

je zult dus met je provider moeten praten of ze zo'n globale limiet hebben ingesteld. aangezien het blijkbaar bij 5MB fout gaat en ik weet dat php default naar 8MB doet mij vermoeden dat zo'n limiet is ingesteld. je betaalt waarschijnlijk voor support en dus ook voor de mogelijk om zelf zo'n limiet in te stellen dus vraag het aan je provider want dit verschilt erg van provider tot provider.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:29

crisp

Devver

Pixelated

Laat de hoster ook even kijken naar LimitRequestBody in de apache config

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Check ook even of je host geen suhosin draait, das n extra beveiliging op php die (vaak) userinput beperkt tot "normale" waarden. Die settings worden over je normale settings gezet.

Acties:
  • 0 Henk 'm!

  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 13:44

Eijkb

Zo.

Naast suhosin heeft mod_security ook zoiets. Er zijn dus meerdere opties waarom dit niet zou werken, je webhost zou daar uitsluitsel over kunnen geven.

.


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

En wat zegt een phpinfo() ? Ik kan me namelijk niet voorstellen dat de globale parameters hoger staan als degene in je .ini bestand.

Acties:
  • 0 Henk 'm!

  • webinn
  • Registratie: Oktober 2002
  • Laatst online: 06-06 12:44
of gebruik deze tool: http://uber-uploader.sourceforge.net/ werkt bij mij zeer goed voor grote bestanden

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
webinn schreef op maandag 25 augustus 2008 @ 10:22:
of gebruik deze tool: http://uber-uploader.sourceforge.net/ werkt bij mij zeer goed voor grote bestanden
Zeg dan niks :X
Het gaat TS er juist om om zijn probleem op te lossen, niet om een complete upload-suite van anderen te lenen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Verwijderd schreef op zondag 24 augustus 2008 @ 17:39:
ErrorDocument 404 /pagina/404.php
php_value upload_max_filesize 100M
php_value max_execution_time 800
php_value upload_max_size 100M
En je past ook ergens post_max_size aan neem ik aan ? Anders hebben bovenstaande waarden echt geen zin.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op maandag 25 augustus 2008 @ 04:03:
zoals ik het begrijp gaat dit dus om een shared host. op een shared host kan je vaak wel zelf opties instellen in een php.ini of via .htaccess maar de provider kan vaak ook globaal een limiet instellen die dan uiteindelijk prioriteit neemt.

je zult dus met je provider moeten praten of ze zo'n globale limiet hebben ingesteld. aangezien het blijkbaar bij 5MB fout gaat en ik weet dat php default naar 8MB doet mij vermoeden dat zo'n limiet is ingesteld. je betaalt waarschijnlijk voor support en dus ook voor de mogelijk om zelf zo'n limiet in te stellen dus vraag het aan je provider want dit verschilt erg van provider tot provider.
Ik heb al contact gehad met de provider. Zij vertelden dat er verder geen limiet wordt gesteld. Ik zou een php.ini bestand maken en dat in de map /private zetten. Dan zou het moeten werken (voor de hele site)
Mooi niet dus.

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Maar wat zegt phpinfo() of het opvragen van die settings? Dat het nu niet werkt wisten we al. ;)

{signature}


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
igmar schreef op maandag 25 augustus 2008 @ 12:28:
[...]


En je past ook ergens post_max_size aan neem ik aan ? Anders hebben bovenstaande waarden echt geen zin.
Die heb ik aangepast :)

Maar geen resultaat :(

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Dan moet je toch echt je host weer bellen, als zij zeggen dat t kan en t werkt niet dan kunnen wij er niets aan zien natuurlijk.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Voutloos schreef op maandag 25 augustus 2008 @ 13:38:
Maar wat zegt phpinfo() of het opvragen van die settings? Dat het nu niet werkt wisten we al. ;)
Hoe bekijk is de phpinfo() file? Is weer even geleden... :?

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Pfff, zoek maar in de documentatie naar phpinfo(), of bedenk eens waarom er haakjes achter staan...

{signature}


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Voutloos schreef op maandag 25 augustus 2008 @ 13:46:
Pfff, zoek maar in de documentatie naar phpinfo(), of bedenk eens waarom er haakjes achter staan...
Ik heb er een php bestand van gemaakt, met phpinfo() als code. Nu zie ik het bestand.

Er staat:
post_max_size 100M
upload_max_filesize 100M

Dus lijkt me dat dit geen beperking zou moeten opleveren?!

[ Voor 20% gewijzigd door Verwijderd op 25-08-2008 14:07 ]


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Maar wat werkt er dan niet ? foutmelding ? Geen foutmelding ?

Acties:
  • 0 Henk 'm!

Verwijderd

phpinfo() geeft alleen php's eigen configuratie weer. als apache zelf een limiet heeft dan zie je die niet terug in phpinfo(). zo zijn er meer punten waar een limiet kan zijn ingesteld.

probeer het eens anders om. ipv de limiet te verhogen probeer je deze te verlagen zodat je zeker weet dat jouw instellingen van toepassing zijn. probeer bijvoorbeeld eerst een klein bestand van bijvoorbeeld 3Megabyte te uploaden. als dat werkt zet je je eigen limiet op 2Megabyte en probeer je het opnieuw. als het dan toch werkt zijn jouw instellingen niet van toepassing en kun je je hostingprovider attenderen dat er iets fout is aan hun kant.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb nog eens met de hoster gepraat. Er is verder geen limiet ingesteld. Dus zou ik denken dat er iets aan mijn script schort.
Dit is de code:

PHP:
1
2
3
4
echo "<form action='".$_SERVER['PHP_SELF']."?actie=nieuw&item=timelapse' method='POST' enctype='multipart/form-data'>";
echo "<input type='hidden' name='MAX_FILE_SIZE' value='999999999'>";
echo "<input type='file' name='timelapse' size='20' value=''>";
echo"<input class='button' type='submit' name='submit' value='verstuur'>";


Gr. Ferry

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
BtM909 schreef op maandag 01 september 2008 @ 13:52:

3. WAT gebeurt er precies met de huidige configuratie en je voorbeeld script?
Wat er gebeurt is dat een bestand dat groter dan enkele MB's is niet wordt geupload. Ik controleer voordat het formulier verzonden wordt, of het bestand wel geupload is. Dat doe ik door middel van:

PHP:
1
if(!is_uploaded_file($_FILES["timelapse"]["tmp_name"])){ echo 'Upload de timelapse'; }


Dus als het bestand niet op de server wordt geplaatst, krijg je de foutmelding: upload de timelapse. Verder geen foutmelding.

Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017

RSD

Bij het uploaden van grote bestanden is het vaak zo dat je browser op een gegeven moment timeout. Dit kun je oplossen door met js de pagina af en toe wat output te geven... daarnaast kun je het beste:

set_time_limit(0) bovenaan je pagina aanroepen. Als je in de php.ini gaat knoeien dan geldt dat vaak voor je hele website en kunnen mensen je website snel overbelasten.

Acties:
  • 0 Henk 'm!

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Verander de controle eens door

PHP:
1
2
3
4
5
6
7
if(!is_uploaded_file($_FILES["timelapse"]["tmp_name"]))
{
echo '<pre>';
print_r($_FILES['timelapse'])
echo '</pre>';
echo 'Upload de timelapse';
}


Aan het $_FILES['timelapse']['error'] kun je afleiden waarom de upload mislukt. Zie ook http://nl3.php.net/manual/en/features.file-upload.php

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Of nog beter doe eens:
PHP:
1
2
3
<?php
phpinfo();
?>

Check dan eens
post_max_size
upload_max_filesize
max_input_time
max_execution_time

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RAJH schreef op maandag 01 september 2008 @ 14:55:
Verander de controle eens door

PHP:
1
2
3
4
5
6
7
if(!is_uploaded_file($_FILES["timelapse"]["tmp_name"]))
{
echo '<pre>';
print_r($_FILES['timelapse'])
echo '</pre>';
echo 'Upload de timelapse';
}
Ik heb deze controle toegevoegd. Wat ik op mijn scherm zie is het volgende:

Array
(
[name] => 010508_mov10_cb.swf
[type] =>
[tmp_name] =>
[error] => 1
[size] => 0
)

Ik zie dat er een error is, maar wat kan ik hieraan afleiden?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Megamind schreef op maandag 01 september 2008 @ 16:23:
Of nog beter doe eens:
PHP:
1
2
3
<?php
phpinfo();
?>

Check dan eens
post_max_size
upload_max_filesize
max_input_time
max_execution_time
max_execution_time 100000
max_input_time 100000
post_max_size 100M
upload_max_filesize 100M

Dus je zou zeggen dat hier geen belemmering is voor grotere bestanden up te loaden.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op maandag 01 september 2008 @ 16:38:
[...]


Ik heb deze controle toegevoegd. Wat ik op mijn scherm zie is het volgende:

Array
(
[name] => 010508_mov10_cb.swf
[type] =>
[tmp_name] =>
[error] => 1
[size] => 0
)

Ik zie dat er een error is, maar wat kan ik hieraan afleiden?
http://www.php.net/manual/en/features.file-upload.errors.php

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm, volgens de foutcode overschrijdt het bestand het maximum dat ingesteld is in de upload_max_filesize van php.ini. Echter, het bestand wat ik test is 5MB, terwijl de upload_max_filesize op 100M staat in php.ini.

Dit begrijp ik echter niet.

Acties:
  • 0 Henk 'm!

  • ppx17
  • Registratie: December 2007
  • Laatst online: 22-08 18:09
Er is ook nog een max_input_time, staat die wel hoog genoeg?
Whoops, overheen gelezen.

[ Voor 22% gewijzigd door ppx17 op 01-09-2008 17:05 ]

40D | 8 | 50 | 100 | 300


Acties:
  • 0 Henk 'm!

  • magiel
  • Registratie: Januari 2005
  • Laatst online: 20-09 08:19
Megamind schreef op maandag 01 september 2008 @ 16:23:
Of nog beter doe eens:
PHP:
1
2
3
<?php
phpinfo();
?>

Check dan eens
post_max_size
upload_max_filesize
max_input_time
max_execution_time
Zoals al eerder gezegd, PHP is niet het enige wat limieten op legt. Apache doet dit ook, en daar zie je het resultaat niet van in de phpinfo().

@TS: Om je code te checken op werkzaamheid, zet thuis is een webservertje op (bijv met VMware Server oid). Host daar je code, na aanpassen van de php.ini, en dan weet je of het aan je code ligt of niet.

Ik wil het er _niet_ over hebben.


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Verwijderd schreef op maandag 01 september 2008 @ 16:59:
Hmm, volgens de foutcode overschrijdt het bestand het maximum dat ingesteld is in de upload_max_filesize van php.ini. Echter, het bestand wat ik test is 5MB, terwijl de upload_max_filesize op 100M staat in php.ini.

Dit begrijp ik echter niet.
Als het dan in jouw php.ini in de private map goed staat (want dat moet werken volgens je hoster) en het werkt alsnog niet, dan mag de hoster de plaat voor hun kop weghalen... :)

[ Voor 3% gewijzigd door CH4OS op 01-09-2008 18:05 ]

Pagina: 1