Zadejte hledaný výraz...

PHP – nahrávání souborů, nastavení php.ini

mcever4
verified
rating uzivatele
4. 8. 2022 08:32:20
Zdravím, potřeboval bych poradit. 
Mám linuxový server Debian, na něm PHP 7.0 
PHP stránku, která mi přes klasický formulář nahrává obrázky na web. ( po jednom )
v php.ini
Problém spočívá v tom, že někdy se obrázek nahraje, a někdy ne. Přitom je obrázek stejný. (stejný soubor)
Chvilku počkám a pak tentýž obrázek nahrát jde, pak zas třeba 4x za sebou obrázek nahrát jde a pak zas dvakrát ne. Dělá si to ze mě srandu. Jako by někde bylo nastaveno, kolik obrázků můžu v jedné minutě nahrát. Nebo se zaplňuje nějaký temp kam se nahrávají soubory ?
Nevíte čím to může být?
4. 8. 2022 08:32:20
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505397
TomasX
verified
rating uzivatele
(4 hodnocení)
4. 8. 2022 09:14:43
logy?
4. 8. 2022 09:14:43
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505396
mcever4
verified
rating uzivatele
4. 8. 2022 11:05:56
Napsal TomášX;1649007
logy?
pouze chyba Warning: getimagesize(): Filename cannot be empty což je že nemůže ze souboru načíst jeho parametry.
v access.log je pouze záznam o načtení formuláře, OK
v error.log žádný záznam není
4. 8. 2022 11:05:56
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505395
TomasX
verified
rating uzivatele
(4 hodnocení)
4. 8. 2022 11:52:01
tak si zkus zvednout úroveň logů. Getimagesize napovídá tomu, že ti to tam zpracovává tvůj kód a v něm máš nějakou chybu nebo neošetřený stav. PHP nahrávaný soubor drží v paměti dokud ho sám nezpracuješ.
Ukaž víc dat, doplň si tam nějaký var_dump(), ukaž kód, takhle to je hledání jehly v kupce sena.
4. 8. 2022 11:52:01
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505394
mcever4
verified
rating uzivatele
4. 8. 2022 12:11:24
Tam už toho moc není, jen script, který má vytáhnout parametry jako velikost, typ souboru.  Pokud se soubor nenahraje tak getimagesize hodí chybu
Ještě co je zajímavé tak jsem vytvořil nový virtualhost pod novou doménou, tak jsem překopíroval soubory a vše funguje tak jak má. 
4. 8. 2022 12:11:24
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505393
TomasX
verified
rating uzivatele
(4 hodnocení)
4. 8. 2022 12:53:21
a nemáš třeba problém s místem nebo nemáš memory limit pro PHP nastavený příliš nízko? Je to takové hádání, příčin může být celá řada
4. 8. 2022 12:53:21
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505392
mcever4
verified
rating uzivatele
5. 8. 2022 12:51:22
memory limit 256M, místo na disku je. Kdyby to nešlo vůbec, tak by se hledala chyba snáz, ale tohle jednou ano pak ne...
5. 8. 2022 12:51:22
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505391
TomasX
verified
rating uzivatele
(4 hodnocení)
5. 8. 2022 13:16:52
pořád tam ale bude jedna příčina. Webový server máš jaký? Můžeš jak u server, tak php i php-cgi zvednout logy na debug? Oni tam budou třeba zajímavé informace, jsem v oboru moc dlouho, abych věřil na duchy.
5. 8. 2022 13:16:52
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505390
unlucky
verified
rating uzivatele
(16 hodnocení)
5. 8. 2022 17:27:30
Už si to moc nepamatuju, ale není to tak, že uploaduješ stejný soubor = stejný název?
možná sem třeba hodit ten upload skript
5. 8. 2022 17:27:30
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505389
TomasX
verified
rating uzivatele
(4 hodnocení)
5. 8. 2022 17:39:00
php vždy pro každý upload dělá nový dočasný název pro soubor, je pak na tobě jak s tím naložíš a pod jakým názvem ho uložíš
5. 8. 2022 17:39:00
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505388
unlucky
verified
rating uzivatele
(16 hodnocení)
6. 8. 2022 05:57:48
Napsal TomášX;1649103
php vždy pro každý upload dělá nový dočasný název pro soubor, je pak na tobě jak s tím naložíš a pod jakým názvem ho uložíš
ale nikde se nezmiňuje o tom, že si ty obrázky nějak ukládá
6. 8. 2022 05:57:48
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505387
TomasX
verified
rating uzivatele
(4 hodnocení)
6. 8. 2022 09:31:20
ano, chybí tady kód, který to zpracovává a řekl bych, že chyba je právě v něm. Ono stačí použít původní název souboru, neošetřit znaky a je problém na světě.
6. 8. 2022 09:31:20
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505386
mcever4
verified
rating uzivatele
9. 8. 2022 21:08:49
Asi jsem našel příčinu problému. 
soubor nahrávám stále stejný (velikost do 2MB, formát jpg, název souboru abc.jpg)
v php.ini je nastaveno
file_uploads on
max_file_uploads 32
memory_limit 256M
max_input_time 60
max_execution_time 30
upload_max_filesize 46M
upload_tmp_dir  /var/www/clients/client1/web19/tmp
V kódu nic navíc není než co jsem vypsal výše, pokud by byl špatný, nefungovalo by to ani jednou, takhle to jde jen někdy
Už jsem nevěděl co dělat. Založil jsem jiný virtuál na jinou doménu a překopíroval jsem kod, a vše fungovalo jak má.  Začal jsem hledat co je jinak. 
Zda nemám treba přes htaccess nějaké nastavení, ale vše bylo stejné.
Našel jsem asi čím to je. V nastavení hostingu je nastavení upload_tmp_dir s cestou 
upload_tmp_dir  /var/www/clients/client1/web19/tmp
Do adresáře jsem se nemohl dostat přes FTP, načítání probíhalo dlouho a pak skončilo s prázdným výpisem. Zjistil jsem, že v adresáři je 27 milionů souborů s nulovou velikostí. 
Jedná se o soboury začínající  sess_*  například sess_lkmp28baaujn32jsfnb7uvp106
tvoří se tam pokud používám session_start();
i když mají session nastavenou nějakou platnost tak sice session není platná, ale soubor sám nezmizí. Smazáním obsahu adresáře začalo fungovat nahrávání obrázků.  
i když by to způsobovalo problémy, stále nerozumím tomu proč se jednou obrázek nahrál a pak zas ne. 
9. 8. 2022 21:08:49
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505385
TomasX
verified
rating uzivatele
(4 hodnocení)
9. 8. 2022 21:36:41
takovýhle množství souborů je minové pole problémů. Strace by řekl přesně, ale odhaduji, že problém mohla dělat snaha php ty session promazat, tím se celý proces zaměstná i na minuty, ale kvůli časovému limitu se php zabilo dřív. Stejně tak mohlo trvat dlouho uložit do takové složky nový soubor, trvalo to dlouho a pokud proces chytl nějakou údržbu na čistění, nedoběhl. Na venek to mohlo působit náhodně.
Počet session souborů je dobré kontrolovat, u větších aplikací je dobré je dávat do databáze a stejně tak je dobré nestartovat sezení pokud ho nepotřebuješ.
9. 8. 2022 21:36:41
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505384
mcever4
verified
rating uzivatele
10. 8. 2022 06:51:33
pokud mám stránky se 250tis produkty, na kterých je košík a objednává se bez přihlášení, pak session pouštím. Pokud tam vlítne robot a začne indexovat, tak těch souborů je tam strašně. 
obecně jsem si myslel že se po ukončení platnosti session soubory mažou. Zas mi přijde divný, že bych musel ručně promazávat tmp.
zkusím k tomu najít nějaké info
10. 8. 2022 06:51:33
https://webtrh.cz/diskuse/php-nahravani-souboru-nastaveni-php-ini/#reply1505383
Pro odpověď se přihlašte.
Přihlásit