PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
copy
Postitaja: copy 2017-09-14 22:59:55
Kasutades funktsiooni copy (kust, kuhu);
Tekkis probleem, et suuremahuliste failide kopeerimisel näiteks 5GB ei kopeeri tervet faili, vaid osaliselt.
Millest selline probleem võib olla?
Asi on selles, et varem kopeeris terve faili aga nüüd osaliselt.
RE: copy
Postitaja: mõtete_peegelkoopia 2017-09-14 23:32:06
Ma ei tea vastust Teie küsimusele, aga
ma ise kahtlustaksin veebiserveri poolset
PHP-protsessile pandud piirangut. Enamasti
on PHP-programmile veebimajutuskontodel
antud ajapiirang, mille jooksul PHP-programm
peab oma tööga hakkama saama. Ajalimiiti
ületades PHP-protsess tapetakse maha.

Võibolla Teil antud piirangu väärtus
muutus või hakkasite kasutama aeglasemat
kõvaketast, mistõttu Teie kopeerimis-operatsioon
tapetakse maha enne kui see oma tööga valmis saab.

Ega ma täpset vastust praegu tea.
RE: copy
Postitaja: mõtete_peegelkoopia teine mõte 2017-09-14 23:34:45
Üks asi, mida veel kahtlustada, on üleslaetava
faili maksimumsuurus. Ka see on PHP seadistustest
muudetav. Võibolla Teil laetaksegi vaid osa failist
üles ja siis Te hakkate kopeerima poolikut faili.

Ma ei tea.
RE: copy
Postitaja: copy 2017-09-15 00:03:22
Veebilehe kaudu laen faili üles, move_uploaded_file funktsiooniga laeb uploadfiles kausta terve faili.
Siis vastavalt faililaiendile kopeerin copy funktsiooniga faili teise kataloogi. Ja vat teise kohta läheb poolik fail.

Asja kasutan sisevõrgus, kus mul üks arvuti on veebiserveriks tehtud ja teise arvutiga laen faile üles veebiserveris olevale kettale.

Midagi ümber confinud ei ole, asi enne töötas, nüüd enam mitte.
Niipalju on muutunud, et enne oli arvutite vahel gigane switch, nüüd 100ne switch. Varsti peksin gigase ühenduse tagasi saama, aga kuna uploadsfiles kausta läks terve fail, siis ei tohiks siin vahet olla.
Ka ajalimiit on pandud suureks.

RE: copy
Postitaja: blaa 2017-09-15 09:03:02
destination is too FAT :)

Ma kahtlustaks küll seda switchi. Kiiruse vahe ju 10 kordne ja kuskilt see timeout tuleb. Võiks isegi arvata, et kuskil on 300 sekundi timeout.
RE: copy
Postitaja: copy 2017-09-15 14:02:57
rename (kust, kuhu);
tegi töö ära.
RE: copy
Postitaja: copy 2017-09-15 17:51:07
Tundub, et COPY teeb kuni 4GB, ja üle selle kopeerib poolikult.
Enne arvasin, et copy töötas õigesti, aga kontrollisin üle ja ikkagi ei kopeerinud nagu vaja.

Tegu on windowsis veebiserveriga.

Teine variant mis töötas oli
exec('copy'. ' "' . $kust . '" "' . $kuhu. '"');
RE: copy
Postitaja: ei_tea 2017-09-17 06:32:41
TSITEERITUD:

Tundub, et COPY teeb kuni 4GB, ja üle selle kopeerib poolikult.
Enne arvasin, et copy töötas õigesti, aga kontrollisin üle ja ikkagi ei kopeerinud nagu vaja.

Tegu on windowsis veebiserveriga.

Teine variant mis töötas oli
exec('copy'. ' "' . $kust . '" "' . $kuhu. '"');


Bittide arv "32-bitiste" ja "64-bitiste" protsessorite korral
tähistab aadressisiini laiust bittides. Põhjus, miks oli
vaja üle liikuda "32-bitistelt" arvuititelt "64-bitistele"
arvutitele seisnes selles, et

2-astmes-32 = 4294967296 ehk 4 "giga"

mis jäi RAM'i kogusena serverites väheks.

"8-bitiste" ja "16-bitiste" protsessorite korral
"bittide arv" nimes protsessori aadressisiini laiust
ei pruugi tähistada. 8051 või 8086 CPU-de korral oli
kasutusel mingi häkk, kus aadress saadeti mälukontrollerile
mitmes osas. Mikrokontrollerite ehk tervikuna ühe mikroskeemi
sisse ehitatud arvutite ("single chip coputer") korral
kasutatakse Harvardi arhitektuuri ("Harvard Architecture"), kus
erinevalt meie tavapärasest "lauaarvutist" on programmikoodi
ja programmi töö käigus kasutatavate muutujate salvestamisel
kasutatavad mälud üksteisest lahus. Seal tähistab
väljend "8-bitine" seda, et protsessori registritest
on enamus 8-bitised.


32 bitti on 32/8=4 ehk 4 baiti (4B). 4B on C ja C++
korral täisarvutüübi "int" de facto standard-suurus.
Bittide arv "int" numbritüübis on küll C ja C++ spetsifikatsioonide
kohaselt kompilaatori määrata, aga enamasti on
see 4B. Oletatavasti siis selle serveri progrejad
olid kuskil laisad ja arvasid, et neile piisab, kui nad
faili suuruse tavalisse int-muutujasse kirjutavad, sest
int-tüüpi muutujaid harilikult ju täisarvude hoidmiseks
C-s ja C++'is kasutatakse. Võibolla see on põhjus, miks
kuni 4GiB suurusi faile kopeeritakse ja pikemaid ei kopeerita.

RE: copy
Postitaja: bitid 2017-09-23 18:32:48
Kuni seda üle 4GB faili mällu ei üritatata laadida, seni ei puutu need bitid väga asjasse

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.408339977264