{"id":29071,"date":"2021-06-06T11:20:00","date_gmt":"2021-06-06T08:20:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29071"},"modified":"2021-10-18T03:36:49","modified_gmt":"2021-10-18T00:36:49","slug":"jak-zaimplementowac-przesylanie-porcji-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-zaimplementowac-przesylanie-porcji-w-php\/","title":{"rendered":"Jak zaimplementowa\u0107 przesy\u0142anie porcji w PHP"},"content":{"rendered":"<p>Opublikowany w <a href=\"https:\/\/artisansweb.net\/category\/php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/p>\n<p>Ostatnio jeden z naszych czytelnik\u00f3w zapyta\u0142 o przesy\u0142anie porcji w PHP. Chc\u0105 przesy\u0142a\u0107 du\u017ce pliki w szybki i niezawodny spos\u00f3b. Wdra\u017caj\u0105c przesy\u0142anie porcji, mo\u017cesz \u0142atwo przesy\u0142a\u0107\/przenosi\u0107 du\u017ce pliki na serwer. W tym artykule napisz\u0119 kod PHP do przesy\u0142ania porcji, kt\u00f3ry mo\u017ce by\u0107 przydatny do przesy\u0142ania\/przenoszenia du\u017cych plik\u00f3w.<\/p>\n<p>Czasami w aplikacji internetowej musisz poradzi\u0107 sobie z du\u017cymi plikami. Mog\u0105 to by\u0107 pliki wideo, zip, kt\u00f3re musz\u0105 zosta\u0107 przeniesione do okre\u015blonej lokalizacji na serwerze.<\/p>\n<p>Zaimplementowanie przesy\u0142ania porcji w PHP jest bardzo \u0142atwe. W poni\u017cszym kodzie przenosimy plik \u017ar\u00f3d\u0142owy do katalogu 'uploads&#8217;. Czytamy plik w kawa\u0142kach po 256 bajt\u00f3w i zapisujemy go w pliku docelowym. Ten proces b\u0119dzie kontynuowany, dop\u00f3ki skrypt nie odczyta wszystkich bajt\u00f3w z pliku \u017ar\u00f3d\u0142owego i zapisze te bajty w pliku docelowym. Do tej operacji u\u017cywam natywnych funkcji PHP \u2013 fopen, fread, fwrite i fseek.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce masz plik \u201evideo.mp4&quot;, kt\u00f3ry chcesz przenie\u015b\u0107 do folderu \u201eprzes\u0142ane&#8221;. Poni\u017cej znajduje si\u0119 kod, kt\u00f3ry przenosi plik porcjami do folderu docelowego.<\/p>\n<pre><code>&lt;?php\n$source = 'video.mp4';\n$orig_file_size = filesize($source);\n$destination = 'uploads\/video.mp4';\n\u00a0\n$chunk_size = 256; \/\/ chunk in bytes\n$upload_start = 0;\n\u00a0\n$handle = fopen($source, \"rb\");\n\u00a0\n$fp = fopen($destination, 'w');\n\u00a0\nwhile($upload_start &lt; $orig_file_size) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$contents = fread($handle, $chunk_size);\n\u00a0\u00a0\u00a0\u00a0fwrite($fp, $contents);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$upload_start += strlen($contents);\n\u00a0\u00a0\u00a0\u00a0fseek($handle, $upload_start);\n}\n\u00a0\nfclose($handle);\nfclose($fp);\n\u00a0\necho \"File uploaded successfully.\";<\/code><\/pre>\n<p>Ot\u00f3\u017c \u200b\u200bto! To bardzo proste zaimplementowanie przesy\u0142ania porcji w PHP. Chcia\u0142bym us\u0142ysze\u0107 Twoje przemy\u015blenia lub sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przeslij-pliki-do-amazon-s3-za-pomoca-aws-php-sdk\/\" title=\"Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK\">Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przeciagnij-i-upusc-przesylanie-plikow-za-pomoca-javascript-i-php\/\" title=\"Przesy\u0142anie plik\u00f3w metod\u0105 \u201eprzeci\u0105gnij i upu\u015b\u0107\" za JavaScript>Przesy\u0142anie plik\u00f3w metod\u0105 \u201eprzeci\u0105gnij i upu\u015b\u0107&#8221; za pomoc\u0105 JavaScript i PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przesylac-pliki-na-zdalny-serwer-w-php\/\" title=\"Jak przesy\u0142a\u0107 pliki na zdalny serwer w PHP\">Jak przesy\u0142a\u0107 pliki na zdalny serwer w PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule poka\u017c\u0119, jak zrobi\u0107 przesy\u0142anie porcji w PHP. Korzystaj\u0105c z techniki chunkingu, du\u017ce pliki mo\u017cna przesy\u0142a\u0107 w szybki i niezawodny spos\u00f3b.<\/p>\n","protected":false},"author":1,"featured_media":21646,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-29071","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=29071"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29071\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21646"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=29071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=29071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=29071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}