Maris-S Posted August 25, 2008 Report Share Posted August 25, 2008 Pacēlās jautājums ko darīt ja ir konfigurācijas vērtības ko nevar pamainīt ar ini_set un nav pieejas pie web servera konfigurācijas? Šajā gadījumā konkrēti runa iet par upload_max_filesize un post_max_size, skatījos ar php_info palīdzību, šīs divas vērtības nemainās, ja pirms tam tiek mainītas no php skripta, arī protams augšupielādējot failus nekas nenotiek. Vēl viena lieta ir tāda ka ja fails ir pārsniedzis pieļaujamo faila lielumu, tad POST un FILE surperglobālie masīvi ir tukši, līdz ar to jautājums ir, vai nevar kaut kādā veidā ar php noteikt vai fails ir pārsniedzis izmērus un izdot kļūdas paziņojumu? Jo sanāk tā ka ja nav FILE masīva nav jau ko pārbaudīt. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 25, 2008 Report Share Posted August 25, 2008 (edited) Pacēlās jautājums runa iet kādā veidā ar php noteikt vai fails ir pārsniedzis izmērus un izdot kļūdas paziņojumu? Jo sanāk tā ka ja nav FILE masīva nav jau ko pārbaudīt. Runa Nevar pacelieties , Un Tapat vinja nevar nekur iet :( -- Atbildot uz tavu jautajumu --> var noteikt un piedevam pavisam vienkarshi ... $_FILE['mans_nosaukums']['error'] --> 9 variacijas .. Edited August 25, 2008 by Grey_Wolf Link to comment Share on other sites More sharing options...
Maris-S Posted August 25, 2008 Author Report Share Posted August 25, 2008 Par to jautājuma pacelšanos un runas iešanu tas tā pārnestā nozīmē. :) Nu gluži viss tik vienkārši nav, jo ja faila izmērs pārsniedz pieļaujamo augšupielādējamā izmēru un tajā pašā laikā post datu izmērs nepārsniedz post datiem pieļauto izmēru, tad viss ir kārtībā, bet lieta tāda, ja pateicoties lielam augšupielādējamam failam kopējie post dati pārsniedz post datu pieļaujamo apjomu, tad gan POST, gan FILES masīvi ir tukši. Šajā gadījumā ne tikai nav kur paskatīties kļūdu, bet arī nestrādās viss kas saistīts ar citiem post datiem, piemēram: if (isset($_POST['submit_add'])) { Check for errors... process file upload... } Nenostrādās jo nav jau post masīvā datu kā tādu. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 25, 2008 Report Share Posted August 25, 2008 (edited) kaads sakars $_POST ar $_FILE masiivu ... ? Es nesmu minejis ne vardu ka buutu kautkas jaaskatas $_POST masiivaa + vinsh nebuus tuukshh ... Paris dienas atpakalj intensiivi testeeju sho variaciju ... buus tuuksh tikai dotais $_FILE['dotais_faila_input_lauks'][], iznjemot $_FILE['dotais_faila_input_lauks'][error] kursh saturees kljudas Nr. --- Testeju peivienojot 10 failus augosaa seciibaa (tb. 1M 2M -10Mb) .. ar uzliktu kopeejo limitu 2,5Mb ... perfekti ieladeejas fisi dati iznjemot faili kas parsniedz 2Mb (dotajaa gadijumaa 3 Mb) .. edit: un testesanai nevajag izmantot isset() utt, bet gan primitiivu masivu izvadiisanu uz scriina, pats personiigi izmantoju sadu variantu: ielaiekam faila kas ielaadejas vienmer --> teiksim config... function b($s,$x='') { echo '<pre>'.$x.' |<br>'; print_r($s); echo '</pre><br>|'; reurn false; } // ko erti izsaukt no jebkura koda vietas teiksim b($_GET,' GET masiivs'); b($_FILE, 'faili....') b($masivs) b('TEXTC'); b($var,'PArastc mainigais ar nosaukumu VAR'); Edited August 25, 2008 by Grey_Wolf Link to comment Share on other sites More sharing options...
Maris-S Posted August 25, 2008 Author Report Share Posted August 25, 2008 Es arī izmēģinājos ar failu augšupielādi un man gan viņi bija tukši, tā kā tiem arī būtu jābūt pēc dokumentācijas, viss tieši saistās ar post_max_size, te arī ir aprakstīts kādā gadījumā POST un FILES masīvi būs tukši, šeit arī ir sakars šiem diviem masīviem, tātad ja kopējais sūtīto datu izmērs pārsniedz POST datu pieļauto izmēru tad šie abi masīvi ir tukši. Man nekas nenāk prātā kā varētu noteikt kļūdu par pārāk lielo failu šādā gadījumā. Link to comment Share on other sites More sharing options...
Maris-S Posted August 25, 2008 Author Report Share Posted August 25, 2008 Bāc, stulbums!! Tikko pats uzmanīgi izlasīju par post_max_size, tur taču ir arī risinājums parādīts, padot caur GET ka tiek sūtīta forma. Tomēr vēl paliek pirmais jautājums vai vispār ir iespēja caur php skriptu nomainīt šīs post_max_size un upload_max_filesize vērtības? Link to comment Share on other sites More sharing options...
bubu Posted August 25, 2008 Report Share Posted August 25, 2008 Uzmanīgāk lasītu, tad izlasītu arī, ka to nevar nomainīt skriptā. Jo šīs vērtības ietekmē faila uploadu, kurš notiek pirms skripts vēl sācis darboties. Respektīvi - tad, kad skripts sācis darboties, vari mainīt vai nemainīt tās vērtības - nekas nemainīsies, jo viss faila saturs jau ir uploadots! Jāmaina ir php.ini failā, vai arī, ja ir atļauts, .htaccess failā. Tieši tas pats, kas ar "magic quotes" - tā settinga mainīšana neko neietekmēs, jo viss jau būs eskeipojies pirms skripts vēl sācis darboties. Link to comment Share on other sites More sharing options...
Maris-S Posted August 25, 2008 Author Report Share Posted August 25, 2008 Bubu, paldies. Ar htaccess labs ieteikums, jo šis iespējams strādās, būs jāmēģina. Link to comment Share on other sites More sharing options...
deniss Posted October 19, 2008 Report Share Posted October 19, 2008 Varbūt kādam būs interesanti - failu augšupielādes progresa indikators: http://web.hc.lv/kods/php-mysql/raksti/fai...esa-indikatoru/ Link to comment Share on other sites More sharing options...
Maris-S Posted October 20, 2008 Author Report Share Posted October 20, 2008 Deniss, paldies par linku, vēl neesmu izmēģinājis strādā vai nē, bet savā laikā meklēju tādu skriptu, vienīgais nesanāca atrast tādu, kas strādātu tikai uz php, pārsvarā kā papildus līdzeklis bija perl (ja pareizi atceros), ja strādājošs piemērs, tad šis noderēs. Link to comment Share on other sites More sharing options...
Recommended Posts