Autor Zpráva
Rabušín
Profil *
Mám dva hostingy u různých poskytovatelů a potřeboval bych občas na pozadí (automatiky CRONEM) pomocí PHP přenést z jednoho webu (hostingu) na druhý soubor o velikosti cca 200 MB. Pomůže někdo se skriptíkem, jsem začátečník. Na obou hostinzích jede např. bezproblémově cURL ...
Díky
CZechBoY
Profil
Budes muset udelat POST ale prenaset budes jen casti souboru, protoze nastaveni post_max_size bude urcite mensi.
Takze treba 10 pozadavkama posles soubor a dalsim ho slozis - posles jaky soubory se maji spojit.
Rabušín
Profil *
1) jak a kde zjistím hodnotu "post_max_size"?

2) díky za nakopnutí, ale asi to sám dohromady nedám, zkusím tedy hledat příp. dál na google .... téma ohledně těch POST požadavků ....

dík
CZechBoY
Profil
<?php ini_get("post_max_size");
http://php.net/manual/en/ini.core.php#ini.post-max-size
nebo jeste to muze omezit upload_max_filesize php.net/manual/en/ini.core.php#ini.upload-max-filesize
TomášK
Profil
Nepřenášel bych to přes HTTP, ale stejným způsobem, jako nahráváš soubory na server (SSH, FTPS, rsync, ...)? Pokud bys měl na obou stranách SSH nebo rsync, mohlo by to jít jednodušeji bez PHP.
Keeehi
Profil
CZechBoY:
Taky je možný druhý přístup. Místo ten soubor z jednoho ma druhý server natlačit, může si ho druhý od prvního stáhnout.

file_put_contents('soubor.data', file_get_contents('https://server1.example.com/soubor.data'));
Sitole
Profil
Rabušín:
Určitě by také šla použít přímo v PHP vestavěná funkce pro přeposílání skrze FTP.
Dle mého je to nejjednodušší možnost jak posílat vcelku veliké soubory ze serveru na server.
php.net/manual/en/ref.ftp.php
Davex
Profil
Rabušín:
Pro kopírování souborů bych použil funkci copy ve skriptu na cílovém webhostingu. Proti Keeehiho skriptu má výhodu v tom, že se celý soubor nenačítá do operační paměti.
CZechBoY
Profil
No jasně, bral jsem nějak prioritně bezpečnost... zapomněl jsem na jednodušší varianty :-)) [deformace z povolání]
Rabušín
Profil *
pár dní jsem byl mimo a ještě to nezačal řešit.... a koukám kolik tipů tu je 8-) . Ovšem budu mít asi víc problémů jelikož ten můj hosting není kdovíjak výkonný (je sdílený)....

Nejde nějak udělat aby ten stroj co požádá o stažení 200 MB souboru požádál jen o nějaký díl souboru třeba 5 MB a po dávkách stáhnul malé dílky a pak je inteligentně spojil dohromady?

Pokud tomu rozumím tak zatím se jeví přes PHP nejideálnější funkce copy() příp. varianta co uvedl Sitole: php.net/manual/en/ref.ftp.php ?

PS: chtěl bych vyloženě čisté PHP řešení, jelikož tomu alespoň trochu rozumím....

Děkuji všem.
Rabušín
Profil *
Zkusil jsem níže uvedený postup, ale končí to "failed" .... ani nevím proč....
Adresář má práva pro zápis v pořádku , atd.

postup file_put_contents('soubor.data', file_get_contents( ... končí chybou o nedostatečné paměti :-(


$file = 'http://www.example.com/muj_example.mp4';
$newfile = 'example.mp4';

if (!copy($file, $newfile)) {
    echo "failed to copy $file...\n";
}
Taps
Profil
Muzes zkusit Copy large files (over 2 GB) in PHP
Davex
Profil
Rabušín:
končí to "failed" .... ani nevím proč....
Ideální postup vedoucí k odhalení problému začíná zapnutím vypisování všech chyb PHP.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: