Jak zaimplementować przesyłanie porcji w PHP
Opublikowany w PHP
Ostatnio jeden z naszych czytelników zapytał o przesyłanie porcji w PHP. Chcą przesyłać duże pliki w szybki i niezawodny sposób. Wdrażając przesyłanie porcji, możesz łatwo przesyłać/przenosić duże pliki na serwer. W tym artykule napiszę kod PHP do przesyłania porcji, który może być przydatny do przesyłania/przenoszenia dużych plików.
Czasami w aplikacji internetowej musisz poradzić sobie z dużymi plikami. Mogą to być pliki wideo, zip, które muszą zostać przeniesione do określonej lokalizacji na serwerze.
Zaimplementowanie przesyłania porcji w PHP jest bardzo łatwe. W poniższym kodzie przenosimy plik źródłowy do katalogu ‘uploads’. Czytamy plik w kawałkach po 256 bajtów i zapisujemy go w pliku docelowym. Ten proces będzie kontynuowany, dopóki skrypt nie odczyta wszystkich bajtów z pliku źródłowego i zapisze te bajty w pliku docelowym. Do tej operacji używam natywnych funkcji PHP – fopen, fread, fwrite i fseek.
Załóżmy, że masz plik „video.mp4", który chcesz przenieść do folderu „przesłane”. Poniżej znajduje się kod, który przenosi plik porcjami do folderu docelowego.
<?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.";
Otóż to! To bardzo proste zaimplementowanie przesyłania porcji w PHP. Chciałbym usłyszeć Twoje przemyślenia lub sugestie w sekcji komentarzy poniżej.
Powiązane artykuły
- Prześlij pliki do Amazon S3 za pomocą AWS PHP SDK
- Przesyłanie plików metodą „przeciągnij i upuść” za pomocą JavaScript i PHP
- Jak przesyłać pliki na zdalny serwer w PHP