Portál AbcLinuxu, 6. května 2024 01:51


Dotaz: http/php upload file problem

23.8.2009 23:43 Dworkin
http/php upload file problem
Přečteno: 835×
Odpovědět | Admin

Dobry den,

narazil jsem na problem (s trivialnim) uploadem souboru pomoci http.

Vse probehne hladce, nikde zadne chyby , php vrati $_FILES[userfile][error] = 0 takze upload succes.  Ale na filesystemu se zadny soubor nevytvori. Uz jsem ponekud zoufaly a nevim kam sahnout. v http.conf jsem nic nenasel, to same v php.ini a kamos Google take mlci.

muj kod:

<html>
<body>

<?php
echo "<pre>"; print_r($_FILES); echo "</pre>";
?>

<form enctype="multipart/form-data" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="300000000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
</html>

vystupem je succes hlaska ale soubor nikde nelezi :(((((:

 

Array
(
    [userfile] => Array
        (
            [name] => P1010963.JPG
            [type] => image/jpeg
            [tmp_name] => /tmp/phpNA7smX
            [error] => 0
            [size] => 4400281
        )

)

 

Problem se tyka jak malych tak i velkych souboru.

nastaveni php.ini je:
file_uploads = On
upload_tmp_dir = "/tmp"
upload_max_filesize = 100M


apahe a php je default ze OpenSuse 11.0
apache2-2.2.8-28.4
apache2-mod_php5-5.2.9-0.1

Pokud tusite kde je zakopany pes, budu velmi rad za nakopnuti!

S pozdravem

Dworkin

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.8.2009 01:47 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: http/php upload file problem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Není ten soubor náhodou /tmp/phpNA7smX ?
Amarok avatar 24.8.2009 10:34 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: http/php upload file problem
name="MAX_FILE_SIZE" value="300000000"
Jestli se nepletu, tak to je 300Mb :-) To bych radsi neuploadoval.
GNUniverse - May the source be with you...
24.8.2009 10:57 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: http/php upload file problem
Proč ne? Někdo může mít potřebu takové soubory uploadovat a mít na to i připojení.

A mělo by to být 300 MB, ne 300 Mb :-)
24.8.2009 11:10 cz-helper | skóre: 5
Rozbalit Rozbalit vše Re: http/php upload file problem

Rad se pripojim do teto "plodne" diskuse ;-). 300000000 je 286,10MB :-).

300 000 000 B, pricemz znamy prevod je 1024 B => kB, 1024 kB => MB (info pro ctere, kteri by se nechytaly na prvni pohled :-D ).

24.8.2009 12:53 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: http/php upload file problem
Aha, ty asi nemyslíš MB, ale MiB :-)
24.8.2009 12:56 Dworkin
Rozbalit Rozbalit vše Re: http/php upload file problem

Tento kus kodu jsem uvadel jako priklad z testovaciho prostredi, s realnym zivotem nema vubec co delat. Pro to takove mezni hodnoty, o kterych se jiste da vesti dlouha diskuze. Ostatne tak jako nize pri zkopirovani souboru je potreba validace zaslanych dat ap. Zde mi slo primarne o duvod proc neni videt zaslany soubor ve sve [temp]  a vysledek je ten ze neum cist manualy.

Dworkin

24.8.2009 02:26 eoj
Rozbalit Rozbalit vše Re: http/php upload file problem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Z toho tempu se to automaticky smaze, validaci a kopirovani si musis udelat sam, podle svych potreb. Jako by to v dokumentaci nebylo napsane jako pro debi... ehm, dost jasne.
24.8.2009 09:58 Dworkin
Rozbalit Rozbalit vše Re: http/php upload file problem

ehh mate pravdu jsem debil...a to jsem ten navod cetl nekolikrat :(

http://us3.php.net/manual/en/features.file-upload.post-method.php

The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed.

Vyreseno pridanim tohoto kodu na zacatek scriptu, ktery zkopiruje soubor z /tmp do rootu kde je koren stranek.

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
            move_uploaded_file( $_FILES['userfile']['tmp_name']  , "image.jpg"  );  
        }

Nicmene, da se nejak uploadovat sobor jen pomoci http bez php?

 

S pozdravem

Dworkin

24.8.2009 10:16 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: http/php upload file problem
Nicmene, da se nejak uploadovat sobor jen pomoci http bez php?
Vždyť vám prohlížeč ten soubor posílá právě přes HTTP. HTTP server pak musí vědět, co s tím souborem dělat, a to ve vašem případě dělá pomocí PHP. Když si naprogramuji svůj webserver nebo si spustím aplikační webserver mého oblíbeného webového frameworku, může upload umět a přitom v něm žádné PHP být nemusí. Pod Apachem to jdei pomocí jiných programovacích prostředí (jazyků, chcete-li), než PHP. Apache, který nejspíš používáte, neumí sám od sebe upload souboru ošetřit (pokud se nejedná o DAV nebo o nějaký obskurní modul do Apache), a ani to od něj nikdo nečeká.
24.8.2009 10:23 cz-helper | skóre: 5
Rozbalit Rozbalit vše Re: http/php upload file problem

Nicmene, da se nejak uploadovat sobor jen pomoci http bez php?

HTTP definuje i PUT (a dalsi, tedy nejen GET a POST). Problemem muze byt, co se stane na strane serveru (jak s tim nalozi). Je velky problem pouzit PHP (k tomu je spousta dostupne dokumentace, vcetne prikladu) ? Osobne bych to videl jako nejjednodussi variantu (co se nastaveni nejakeho opravneni/restrikce tyce), pokud nekdo zacina.

Nejake info (cast 9.6) k PUT jako takovemu (zdroj: W3C).

24.8.2009 10:31 Dworkin
Rozbalit Rozbalit vše Re: http/php upload file problem

Dekuji vam panove . Neni problem pouzit php, jen jsem v tom chtel mit vice jasno.

Muj problem je vyresen, a diky vsem kteri jste me navedli a dali cenne rady!

Dwokin

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.