[PHP] Upload probleem PDF files

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 29173

Topicstarter
Ik heb hier een webserver staan met Apache/2.0.49 (Gentoo/Linux) PHP/4.3.6. Met daarop in een vhost het volgende stukje php script:
PHP:
1
2
3
4
5
6
...

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { copy($_FILES['userfile']['tmp_name'], $cfgDldir . "/" . $fileid); }
else { $docOutput = "Er is een fout opgetreden bij het uploaden van dit bestand. Probeer het later nog eens."; die; }

...
Dit werkt prima voor doc, txt en xls files bijvoorbeeld. Maar zodra ik een pdf file of Power Point file
upload gaat het fout en zegt firefox:
De verbinding werd geherinitialiseerd
De verbinding met de server werd geherinitialiseerd tijdens het laden van de pagina.
Het vreemde is dat exact hetzelfde script, zelfde php.ini wel goed werkt met alle soorten betstanden op een server met mod_php-4.4.0-r9 en apache-2.0.55-r1 (ook gentoo).

Alle directory rechten zijn goed. De filesize is gelimiteerd op 2M in php.ini maar de files die ik upload zijn kleiner... daarnaast handle ik te grote files ook in het script met "$_FILES['userfile']['size'] >".

Extensies worden als volgt gecontroleerd:
PHP:
1
2
3
4
5
...

elseif ($fileext !== "zip" && $fileext !== "xls" && $fileext !== "doc" && $fileext !== "htm" && $fileext !== "html" && $fileext !== "ppt" && $fileext !== "pps" && $fileext !== "rtf" && $fileext !== "pdf" && $fileext !== "xml" && $fileext !== "rar" && $fileext !== "txt" && $fileext !== "jpg" && $fileext !== "gif" && $fileext !== "png") { ... }

...


Is er iets in deze stukjes script dat niet werkt in php 4.3 en wel in 4.4?

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

het 2 kan je misschien leesbaarder in een in_array zetten:
PHP:
1
2
3
$fileext_list=array("zip",....,"png");
if(!in_array($fileext,$fileext_list){
}


Is er een reden dat je geen gebruik maakt van move_uploaded_file functie ?

[edit]
Maak je gebruik van een POST form om de file te uploaden ?
zo ja, dan zou post_max_size nog van invloed kunnen zijn

[ Voor 34% gewijzigd door TheRookie op 20-04-2006 14:56 ]


Acties:
  • 0 Henk 'm!

Anoniem: 29173

Topicstarter
Geen reden eigenlijk, wat is er mis met copy? Nja maakt het wat overzichtelijker die functie maarja ben copy gewent he. Dat van die array klopt zou beter zijn maar not the point.

Gebruik idd post, maar geen max_file_size opgegeven daar.

Het is dus vreemd dat het op de ene wel en op de andere server niet werkt...

Acties:
  • 0 Henk 'm!

Anoniem: 35517

Anoniem: 29173 schreef op donderdag 20 april 2006 @ 18:33:
Geen reden eigenlijk, wat is er mis met copy? Nja maakt het wat overzichtelijker die functie maarja ben copy gewent he. Dat van die array klopt zou beter zijn maar not the point.

Gebruik idd post, maar geen max_file_size opgegeven daar.

Het is dus vreemd dat het op de ene wel en op de andere server niet werkt...
Dat hoeft niet in het formulier aangegeven te zijn, dat staat namelijk altijd in de PHP.INI ;)

Acties:
  • 0 Henk 'm!

Anoniem: 29173

Topicstarter
Anoniem: 35517 schreef op donderdag 20 april 2006 @ 18:34:
[...]


Dat hoeft niet in het formulier aangegeven te zijn, dat staat namelijk altijd in de PHP.INI ;)
Topic start:
De filesize is gelimiteerd op 2M in php.ini maar de files die ik upload zijn kleiner...
;) + je kan max_size in form opgeve...

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

waarom copy gebruiken als er een functie specifiek voor dat doel bestaat ?

array gebruiken is misschien niet "to the point" maar verbeterd (imo) wél de leesbaarheid van je code


post_max_size != upload_max_filesize

maar post_max_size komt dus niet voor in je php.ini, of is groter dan de max_file_size zoals je die in je form hebt staan ?

de php.ini's van beide servers zijn neem ik aan identiek ?
[edit]
Zie niet dat je ook 2 verschillende versies van apache gebruikt; is het een optie om de apache versie op de server waar het niet werkt te upgraden naar dezelfde versie als de server waar het wel werkt ?

Staat er overigens ook niets in je apache error-log ?

[ Voor 26% gewijzigd door TheRookie op 20-04-2006 20:43 ]


Acties:
  • 0 Henk 'm!

Anoniem: 29173

Topicstarter
max_post_size = 8M dus geen probleem...

Error file is een goeie! helemaal vergeten...
[Thu Apr 20 13:55:08 2006] [error] [client 86.80.158.136] Requested content-length of 1117331 is larger than the configured limit of 524288
Ga er eens achter aan daar lijkt het probleem te liggen id..

Even OT
Waarom vind ik dit soort dingen?
File does not exist: /pub/apache/domein.ext/mambo
File does not exist: /pub/apache/domein.ext/cvs
voor al mn domeinen... zijn dat mensen die scannen op exploits of moet ik me zorgen maken?

En trouwens zo gek is dat niet dat ik copy gebruik... doen ze op php.net bij uitleg over file uploads ook: http://nl2.php.net/features.file-upload

Heb die functie toch niet nodig?

[ Voor 23% gewijzigd door Anoniem: 29173 op 20-04-2006 22:12 ]


Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

:)

OT: Waarschijnlijk scanners die op zoek zijn naar een exploit

Ze doen het idd, maar in de comments wordt gezegd dat dit met windows te maken heeft, niet gentoo :P

Acties:
  • 0 Henk 'm!

Anoniem: 29173

Topicstarter
If it ain't broken don't fix it ;) maar nog steeds geen oplossing :(

[ Voor 11% gewijzigd door Anoniem: 29173 op 20-04-2006 22:50 ]


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
zoek eens in je php.conf naar :

<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody [getal]
</Files>

dat [getal] limiteert de boel waarschijnlijk

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 07-07 15:20

Janoz

Moderator Devschuur®

!litemod

Anoniem: 29173 schreef op donderdag 20 april 2006 @ 22:06:
max_post_size = 8M dus geen probleem...

Error file is een goeie! helemaal vergeten...

[...]


Ga er eens achter aan daar lijkt het probleem te liggen id..

Even OT
Waarom vind ik dit soort dingen?

[...]


voor al mn domeinen... zijn dat mensen die scannen op exploits of moet ik me zorgen maken?
toon volledige bericht
Ja, zijn van die standaard exploit scans. Zolang je geen verouderde veel gebruikte standaardscripts hebt hoef je je geen zorgen te maken.
En trouwens zo gek is dat niet dat ik copy gebruik... doen ze op php.net bij uitleg over file uploads ook: http://nl2.php.net/features.file-upload

Heb die functie toch niet nodig?
Tja, heel erg consequent is de php manual ook weer niet. De reden om move_uploaded_file te gebruiken zijn vooral omdat deze functie specifiek voor dit doel is. Mocht je script ooit draaien op een host met save mode dan werkt het nog steeds. Daarnaast schoont je copy variant de tmp files niet op. Je kopieerd immers alleen en verwijderd het temp bestand niet ;). Voor meer info moet je eens in de manual bij move_uploaded_file kijken.

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

Pagina: 1