ftp_alloc (ftp_alloc)
تابع ftp_alloc در PHP برای «رزرو فضا» روی سرور است. «رزرو فضا» یعنی قبل از آپلود، به سرور بگویی چقدر جا لازم داری. این کار گاهی سرعت و اطمینان را بهتر می کند؛ اما همه سرورها پشتیبانی نمی کنند.
تعریف و کاربرد
تابع ftp_alloc() فضای لازم برای آپلود فایل را اختصاص می دهد. بسیاری از سرورها این فرمان را قبول نمی کنند. پس بهتر است پیام پاسخ سرور را بررسی کنی.
سینتکس
ftp_alloc(<resource> $ftp_conn, int $filesize, string &$result);
نمونه عملی: اتصال، رزرو فضا، آپلود
<?php
$host = "ftp.example.com";
$user = "username";
$pass = "password";
$local = "/test/myfile";
$remote = "/files/myfile";
$conn = ftp_connect($host);
if ($conn === false) {
die("cannot connect\n");
}
$logged = ftp_login($conn, $user, $pass);
if ($logged === false) {
ftp_close($conn);
die("login failed\n");
}
$result = "";
$ok = ftp_alloc($conn, filesize($local), $result);
if ($ok === true) {
echo "space allocated. uploading...\n";
$sent = ftp_put($conn, $remote, $local, FTP_BINARY);
if ($sent === false) {
echo "upload failed\n";
}
} else {
echo "alloc not supported or failed: $result\n";
}
ftp_close($conn);
?>
گام های پیشنهادی
- اتصال بده با
ftp_connect. - وارد شو با
ftp_login. - اندازه فایل را با
filesizeبگیر. ftp_allocرا صدا بزن و پاسخ را بخوان.- اگر موفق بود، با
ftp_putآپلود کن.
نکته: اگر ftp_alloc کار نکرد، مستقیم با ftp_put ادامه بده. بسیاری از سرورها این فرمان را ندارند.
پیوندهای مفید
- مرجع FTP در PHP برای دیدن همه توابع.
- تابع ftp_alloc توضیح و مثال همین صفحه.
- آپلود فایل با ftp_put برای انتقال نهایی.
- اتصال با ftp_connect برای شروع کار.
- W3Schools: PHP FTP Reference فهرست کامل توابع.
- W3Schools: ftp_alloc() منبع همین تابع.
جمع بندی سریع
ftp_allocفضا را از سرور می خواهد.- همه سرورها پشتیبانی نمی کنند.
- پاسخ سرور را بررسی کن.
- در صورت موفقیت،
ftp_putرا اجرا کن. - در پایان، اتصال را ببند.