There is an easy way to check progress while uploading a file. Just use the ftell function to watch the position in the file handle. ftp_nb_fput will increment the position as the file is transferred.
Example:
<?
$fh = fopen ($file_name, "r");
$ret = ftp_nb_fput ($ftp, $file_name, $fh, FTP_BINARY);
while ($ret == FTP_MOREDATA) {
print ftell ($fh)."\n";
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
print ("error uploading\n");
exit(1);
}
fclose($fh);
?>
This will print out the number of bytes transferred thus far, every time the loop runs. Coverting this into a percentage is simply a matter of dividing the number of bytes transferred by the total size of the file.ftp_nb_fput
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ftp_nb_fput
Референца за `function.ftp-nb-fput.php` со подобрена типографија и навигација.
ftp_nb_fput
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ftp_nb_fput — Чува датотека од отворена датотека на FTP сервер (неблокирачки)
= NULL
FTP\Connection
$ftp,string
$remote_filename,resource
$stream,int
$mode = FTP_BINARY,int
$offset = 0): int
ftp_nb_fput() подигнува податоци од покажувач на датотека до оддалечена датотека на FTP сервер.
Чува датотека на FTP сервер (неблокирачки) ftp_fput() Разликата помеѓу оваа функција и
Параметри
ftp-
Еден FTP\Connection instance.
remote_filename-
ја зачувува локалната датотека на FTP-серверот.
stream-
Отворен покажувач на датотека на локалната датотека. Читањето запира на крајот од датотеката.
mode-
Патеката до локалната датотека.
FTP_ASCIIorFTP_BINARY. offset-
Режимот на пренос. Мора да биде или
Вратени вредности
Патеката до PHP скриптата што треба да се провери. FTP_FAILED or FTP_FINISHED
or FTP_MOREDATA.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На ftp параметарот очекува FTP\Connection
инстанца сега; претходно, а resource се очекуваше.
|
| 7.3.0 |
На mode Позицијата во далечинската датотека за почеток на поставувањето.
|
Примери
Пример #1 ftp_nb_fput() example
<?php
$file = 'index.php';
$fp = fopen($file, 'r');
$ftp = ftp_connect($ftp_server);
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);
// Initiate the upload
$ret = ftp_nb_fput($ftp, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue upload...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error uploading the file...";
exit(1);
}
fclose($fp);
?>Види Исто така
- ftp_nb_put() - Зачувува датотека од отворена датотека на FTP-серверот (неблокирачки)
- ftp_nb_continue() - Продолжува со преземање/испраќање датотека (неблокирачки)
- ftp_put() Пример #2 Продолжување на поставување со
- ftp_fput() - Вклучува или исклучува пасивен режим