salu
Noor toru

Registreerunud: 15.7.2009
Kasutaja on eemal
|
|
Jama siis selline, et php-põhine faililisti skript ajab üle 2Gb suuruste failide kohta imelikku plära, nt:
Tolle faili tegelik suurus on 3,9Gb. Nt. 4,4Gb faili kohta väidab suuruseks 373Mb, 8Gb aga -67189.1 KB. Alla 2Gb failide puhul probleeme netu. Olen testinud mitut erinevat skripti, kõik ajavad ühesugust jura.
Oskab keegi miskit tarka kosta, kuidas asi lahendada? Tegu on dedi-servuga, seega täielik ruut olemas, juhuks kui tuleb hoopis servu konfi kallale minema (php.ini?).
Tänud ette.
|
|
|
DonQ
Administraator
      
Registreerunud: 16.7.2009
Asukoht: Saturn
Kasutaja on eemal
Tuju: Kerge puhkus
|
|
|
Ja millise funktsiooniga skript faili suurust küsib?
|
|
0 |
|
salu
Noor toru

Registreerunud: 15.7.2009
Kasutaja on eemal
|
|
Erinevad skriptid erinevalt, hetkel pusin sellega:
http://subclub.ee/salu/index.php.txt
|
|
|
DonQ
Administraator
      
Registreerunud: 16.7.2009
Asukoht: Saturn
Kasutaja on eemal
Tuju: Kerge puhkus
|
|
Kuskilt maailmast:
| | Note: Because PHP's integer type is signed and many platforms use 32bit integers, filesize() may return unexpected results for files which are larger than 2GB. For files between 2GB and 4GB in size this can usually be overcome by using sprintf("%u", filesize($file)). |
Ja ära püüagi rahvale seletada, et sa ei saa aru, misasi on funktsioon ja misasi on skript 
[Muudetud: 19.11.2010 DonQ]
|
|
0 |
|
salu
Noor toru

Registreerunud: 15.7.2009
Kasutaja on eemal
|
|
Krt, mu engliis on üsna nigel, äkki ikkagi ütled, mida ma seal skripti lõpus pean ära muutma
|
|
|
DonQ
Administraator
      
Registreerunud: 16.7.2009
Asukoht: Saturn
Kasutaja on eemal
Tuju: Kerge puhkus
|
|
Tead, ei ütle (ma ise pole php-d progenud ka). Lisaks töötab minu kommenteeritud lahendus vaid kuni 4GB-ni, edasi jälle jama.
PHP lehel on pikem diskussioon ja koodijupid suuremate failide suuruse kohta. Inglise keele mitteoskamine ei vabanda - ka mina pole inglise keelt õppinud, aga elu sunnib sellest aru saama.
http://php.net/manual/en/function.filesize.php
Üldiselt pead tegema enda funktsiooni faili suuruse näitamise kohta ja selle funktsiooni kirjutama skripti praeguse funktsiooni asemele. Kuna sinu poolt näidatud skriptis on see funktsioon juba olemas (function letter_size($byte_size)), siis pead vaid selle sisu niimoodi ümber tegema, et ta ka suuremaid faile oskab õigesti näidata.
Võib-olla leiad kuskilt selle koodijupi uuema versiooni - ei usu, et keegi seda aja jooksul kohendanud pole.
|
|
0 |
|
salu
Noor toru

Registreerunud: 15.7.2009
Kasutaja on eemal
|
|
Mnjah, näib, et viga on ikka kuskil mujal. Proovisin mitut skripti teises serveris ja polnud probleeme, failide suurused olid kenasti paigas.
Vot nüüd olen küll plindris
|
|
|
DonQ
Administraator
      
Registreerunud: 16.7.2009
Asukoht: Saturn
Kasutaja on eemal
Tuju: Kerge puhkus
|
|
No kui sa viitsiksid inglise keele läbi närida, siis viimati viidatud teemas oli juttu sellest, et erinevatel serveritel (windows IIS, windows apache, linuxi erinevad kernelid, 32 bitti, 64 bitti, erinevad failisüsteemid) ja erinevate php versioonidega tuleb kasutada erinevat töötlust, et õige number kätte saada. Mõnel puhul tehti isegi nii, et lasti failisüsteemi dir (või ls) käsk käima ja tulemusest lõigati see jupp teksti välja, kus faili pikkus kirjas - kuna 32bitise numbri teoreetiliselt kõige suurem väärtus üle 4GB ei lähe, siis php tasemel on raske selliste numbritega midagi mõistlikku teha.
Mõni teadja võiks ju ka sõna võtta (ja sina võiksid serveri konfist natuke pajatada  )
|
|
0 |
|
salu
Noor toru

Registreerunud: 15.7.2009
Kasutaja on eemal
|
|
|
Server on Apache/2.2.16 (Debian) PHP/5.3.2-2 with Suhosin-Patch (Kerneli versioon 2.6.26-2-686 (SMP) i686).
Aga mõningase pusimisega sai asi lõpuks ikkagi jonksu. Ikke jah tuli skripti veidi krõhvitseda.
|
|
|
DonQ
Administraator
      
Registreerunud: 16.7.2009
Asukoht: Saturn
Kasutaja on eemal
Tuju: Kerge puhkus
|
|
A viitsid sa siis neid võrdlemiseks näidata? Ma lihtsalt uudishimust, et mis imeasju see php nõuab
|
|
0 |
|
salu
Noor toru

Registreerunud: 15.7.2009
Kasutaja on eemal
|
|
Nu see sama skript, mis ma enne andsin, sinna sai lisatud funktsioon:
| Kood: | |
function getSize($file) {
$size = exec ('stat -c %s '. escapeshellarg ($file));
return $size;
}
|
Ja real 482 sai tehtud lihtne muudatus:
| Kood: | | enne:
$file_size = filesize($content_path);
pärast:
$file_size = getSize($content_path);
|
Tulemus:
|
|
|