Как реализовать загрузку фрагментов в 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