{"id":28289,"date":"2021-06-06T12:04:00","date_gmt":"2021-06-06T09:04:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28289"},"modified":"2021-10-18T04:04:10","modified_gmt":"2021-10-18T01:04:10","slug":"como-implementar-o-upload-de-blocos-em-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-implementar-o-upload-de-blocos-em-php\/","title":{"rendered":"Como implementar o upload de blocos em PHP"},"content":{"rendered":"<p>Postado em <a href=\"https:\/\/artisansweb.net\/category\/php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/p>\n<p>Recentemente, um de nossos leitores perguntou sobre o upload de partes em PHP. Eles desejam fazer upload de arquivos grandes de maneira r\u00e1pida e confi\u00e1vel. Ao implementar o upload de blocos, voc\u00ea pode fazer upload \/ mover arquivos grandes em um servidor facilmente. Neste artigo, irei escrever um c\u00f3digo PHP para upload de partes que pode ser \u00fatil para upload \/ movimenta\u00e7\u00e3o de arquivos grandes.<\/p>\n<p>\u00c0s vezes, no aplicativo da web, voc\u00ea precisa lidar com arquivos grandes. Podem ser arquivos de v\u00eddeo ou zip que precisam ser movidos para um local espec\u00edfico no servidor.<\/p>\n<p>\u00c9 muito f\u00e1cil implementar o upload de partes em PHP. No c\u00f3digo abaixo, estamos movendo o arquivo fonte para dentro do diret\u00f3rio &#8216;uploads&#8217;. Lemos o arquivo em blocos de 256 bytes e o gravamos no arquivo de destino. Esse processo continuar\u00e1 at\u00e9 que o script leia todos os bytes do arquivo de origem e grave esses bytes no arquivo de destino. Para esta opera\u00e7\u00e3o, estou usando fun\u00e7\u00f5es nativas do PHP &#8211; fopen, fread, fwrite e fseek.<\/p>\n<p>Digamos que voc\u00ea tenha um arquivo &#8216;video.mp4&#8217; que deseja mover para a pasta &#8216;uploads&#8217;. Abaixo est\u00e1 o c\u00f3digo que move um arquivo em peda\u00e7os para a pasta de destino.<\/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>\u00c9 isso! \u00c9 muito simples implementar o upload de partes em PHP. Eu gostaria de ouvir suas opini\u00f5es ou sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/carregar-arquivos-para-o-amazon-s3-usando-aws-php-sdk\/\" title=\"Carregar arquivos para o Amazon S3 usando AWS PHP SDK\">Carregar arquivos para o Amazon S3 usando AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/arrastar-e-soltar-o-upload-de-arquivos-usando-javascript-e-php\/\" title=\"Arrastar e soltar o upload de arquivos usando JavaScript e PHP\">Arrastar e soltar o upload de arquivos usando JavaScript e PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-transferir-arquivos-para-servidor-remoto-em-php\/\" title=\"Como transferir arquivos para servidor remoto em PHP\">Como transferir arquivos para servidor remoto em PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, mostro como fazer upload de partes em PHP. Usando uma t\u00e9cnica de fragmenta\u00e7\u00e3o, arquivos grandes podem ser carregados de maneira r\u00e1pida e confi\u00e1vel.<\/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":[278],"tags":[848],"class_list":["post-28289","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=28289"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21646"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}