Witam. Używam takiej funkcji do uploadu FTP:
function ftp_upload($plik,$name)
{
$localfile = $plik;
$ftpserver = "tutaj serwer ftp";
$ftppath = "/katalog/";
$ftpuser = "user";
$ftppass = "haslo";
$remoteurl = "ftp://${ftpuser}:${ftppass}@${ftpserver}${ftppath}/${name}";
$ch = curl_init();
$fp = fopen($localfile, "rb");
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
curl_setopt($ch, CURLOPT_URL, $remoteurl);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'callback');
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
$error = curl_exec($ch);
curl_close($ch);
}
Plik uploaduje OK, ale niestety odbywa się to niewiarygodnie wolno! Ten sam plik na tym samym serwerze przez FileZille uploaduje kilka razy szybciej, a więc to nie wina hostingu czy osiągów łącza. Dlaczego tak się dzieję?
Szukałem w google i znalazłem kilka tematów z takimi problemami na zagranicznych forach, ale bez konkretnej odpowiedzi.
Jeżeli to dla curl normalne, to może inna metoda, ale poprzez PHP a nie zewnętrzne klienty (bo tak to wiem kiedy wysyłanie się zakończy, a tak to np. wywołam program konsolowy i nie wiem co się dzieje i kiedy wyśle i czy wyśle poprawnie)?
Proszę o pomoc