Як реалізувати завантаження фрагментів у PHP
Опубліковано в PHP
Нещодавно один з наших читачів запитав про завантаження фрагментів у PHP. Вони хочуть завантажувати великі файли швидким та надійним способом. Реалізуючи завантаження фрагментів, ви можете легко завантажувати / переміщувати великі файли на сервер. У цій статті я напишу PHP-код для завантаження фрагментів, який може бути корисним для завантаження / переміщення великих файлів.
Іноді у веб-додатку потрібно мати справу з великими файлами. Це можуть бути відеозаписи, zip-файли, які потрібно перемістити у певне місце на сервері.
Завантажити фрагменти в PHP дуже просто. У наведеному нижче коді ми переміщуємо вихідний файл всередину каталогу “uploads". Ми зчитуємо файл шматками по 256 байт і записуємо його у файл призначення. Цей процес триватиме до тих пір, поки сценарій не прочитає всі байти з вихідного файлу і не запише ці байти у файл призначення. Для цієї операції я використовую власні функції PHP – fopen, fread, fwrite та fseek.
Скажімо, у вас є файл ‘video.mp4’, який ви хочете перемістити в папку ‘uploads’. Нижче наведено код, який переміщує файл фрагментами до цільової папки.
<?php
$source = 'video.mp4';
$orig_file_size = filesize($source);
$destination = 'uploads/video.mp4';
$chunk_size = 256; // chunk in bytes
$upload_start = 0;
$handle = fopen($source, "rb");
$fp = fopen($destination, 'w');
while($upload_start < $orig_file_size) {
$contents = fread($handle, $chunk_size);
fwrite($fp, $contents);
$upload_start += strlen($contents);
fseek($handle, $upload_start);
}
fclose($handle);
fclose($fp);
echo "File uploaded successfully.";
Це воно! Це настільки проста реалізація завантаження фрагментів у PHP. Я хотів би почути ваші думки чи пропозиції у розділі коментарів нижче.
Пов’язані статті
- Завантажте файли на Amazon S3 за допомогою AWS PHP SDK
- Перетягніть завантаження файлів за допомогою JavaScript та PHP
- Як перенести файли на віддалений сервер у PHP