Como fazer upload de arquivos para um servidor web com php

Apresentação.


Faça upload de arquivos para um servidor web; simples, quão difícil pode ser? Certamente muitos dirão isso, mas aqueles que estão apenas começando neste mundo certamente já se perguntaram como isso é feito, eu só quero chegar até eles, então se você está começando em PHP ou é um usuário avançado que perdeu este código e não quero usá-lo novamente escrever, então convido você a continuar lendo, pois neste artigo irei compartilhar meu código para fazer upload de arquivos de forma rápida e fácil, para isso usarei HTML5, PHP e adicionarei um toque atraente com boostrap. Neste caso, estarei explicando como fazer upload de imagens .jpg.webp ou .png.webp, mas com alterações mínimas você pode fazer upload de documentos, áudio e até mesmo vídeo, se desejar.
Que necessitamos?a) Um computador
b) Um servidor local para testar e acessar o banco de dados (eu uso XAMPP)
c) Um editor de código (usarei texto sublime 3)

Passo 1


Vou para o diretório htdocs do Xampp e crio uma nova pasta que chamarei de "upload".
PROLONGAR
Dentro dele, criarei outro chamado "arquivos" e um adicional chamado "php".
PROLONGAR

Passo 2


Agora, no editor de código, criarei um novo arquivo que salvarei como index.php que mais tarde conterá o formulário html para fazer o upload dos arquivos.
PROLONGAR

etapa 3


Vou adicionar as referências online ao boostrap.
PROLONGAR

Passo 4


Dentro do corpo, vou criar um, dentro deste um

PROLONGAR

Etapa 5


Agora dentroVou adicionar um salto de carro
um título come vou começar a estruturar nosso pequeno formulário para o upload …
PROLONGAR
Você verá que atribuí o método "POST" ao rótulo e na ação adicionamos um ponto de interrogação "?" o que fará com que ao enviar o formulário seus valores sejam retornados a esta mesma página, além disso eu adicionei um atributo chamado "encytipe" com o valor "multipart / form-data" que como regra geral deve ser usado em todos formulários que enviam arquivos.

Etapa 6


Já que temos o rótulo pronto podemos adicionar o campo que precisamos e um botão que enviará o formulário a ser processado.
Para isso, vamos adicionar um rótuloe conterá um tipo de entrada "arquivo" que se encarregará de capturar o arquivo que desejamos carregar …
PROLONGAR
Como você pode ver, atribuímos o nome "arquivo" e uma classe chamada "controle de formulário", que pertence ao bootstrap e serve para dar espaçamento correto aos campos de texto contidos em um formulário. Por outro lado, adicionamos também um atributo "obrigatório" que impedirá o envio do formulário se este campo estiver vazio.

Etapa 7


Posteriormente adicionaremos uma etiqueta como decoração, que nos ajudará a traçar uma linha que separa a entrada anterior do botão que enviará o formulário.
PROLONGAR

Etapa 8


Como você verá logo abaixo do rótulo, colocamos uma entrada do tipo "enviar" à qual adicionamos as classes boostrap "btn btn-bloco central primário", das quais a primeira nos ajuda a dar uma forma mais atrativa ao nosso , o segundo coloca-o na cor primária do boostrap que é um azul intenso e o terceiro é usado para colocar este elemento com um ajuste centralizado, note que chamamos este botão de "para cima".

Etapa 9


Já temos nosso html pronto, então agora vamos escrever algumas linhas em php que se encarregarão de enviar nossos arquivos, para isso vamos criar um novo arquivo upload.php que irei salvar no "php" pasta que criamos na etapa 2.

Etapa 10


A primeira coisa que faremos em nosso arquivo php é validar se o botão foi pressionado
"Upload" e se o campo "arquivo" não estiver vazio, para isso escreveremos o seguinte …
PROLONGAR

Etapa 11


Uma vez verificado isso, usaremos um loop "foreach" para obter as propriedades do arquivo que iremos enviar. Como mencionamos anteriormente, neste caso falaremos sobre imagens em .jpg.webp ou .png.webp.
PROLONGAR

Etapa 12


Iremos criar 2 variáveis ​​chamadas "$ file" e "$ destination", a primeira conterá o arquivo que estamos enviando e a segunda iremos atribuir o caminho onde será salvo e o nome com o qual será armazenado , como você pode imaginar o caminho de armazenamento Será o diretório "arquivos" que foi criado na etapa 2, enquanto o nome com o qual será armazenado virá do array $ FILES que construímos na etapa anterior com o foreach …
PROLONGAR

Etapa 13


Agora temos que validar se o arquivo que está sendo carregado está de acordo com os parâmetros que queremos, já indiquei anteriormente que quero fazer upload de imagens em .jpg.webp ou .png.webp, mas é o momento de deixá-lo definido em nosso código. Também como medida pessoal, quero que o tamanho máximo das imagens a serem carregadas seja de 2Mb, então aproveitarei para indicá-lo também, mas mesmo assim esse tamanho máximo não pode ser definido em MB, então teremos que convertê-lo em bytes …
PROLONGAR
Uma vez que estabelecemos as condições para podermos processar os arquivos, agora devemos definir o que faremos com eles. Neste caso, quero que esses arquivos sejam copiados para a pasta "arquivos", mas também quero que o caminho de cada arquivo seja armazenado em um banco de dados para que posteriormente eu possa fazer uma lista ou uma galeria com esses arquivos.
Dito isso, precisaremos criar um banco de dados, e dentro dele uma tabela com campos para conter o caminho de cada arquivo, um arquivo de conexão para esse banco de dados e, claro, incluir em nosso upload.php uma instrução SQL que insere o caminho de cada arquivo dentro do banco de dados. Vá em frente!.

Etapa 14


Com o xampp ativo, vamos ao nosso navegador e inserimos o endereço "localhost / phpmyadmin". Assim que entrarmos com nosso nome de usuário e senha, iremos criar um novo banco de dados, vou chamá-lo de "upload" e atribuir uma correspondência "utf8_spanish_ci".
PROLONGAR

Etapa 15


Dentro, criaremos uma tabela que chamarei de "rotas" com apenas 2 colunas, um ID de incremento automático e outra rota chamada do tipo varchar.
PROLONGAR
PROLONGAR
Já temos o banco de dados e a tabela que precisamos, mas agora precisamos nos conectar a este banco de dados, para isso irei ao meu editor de código e criar 2 novos arquivos e salvá-los como "config.php" e "connection.php" dentro a pasta php que já temos.
PROLONGAR
PROLONGAR

Etapa 16


Agora retornaremos ao nosso arquivo "upload.php" e incluiremos nele o arquivo "connection.php"
PROLONGAR

Etapa 17


Em seguida, adicionaremos a função para que o arquivo que carregamos seja copiado para o diretório "arquivos" e inseriremos o caminho ou link para este arquivo no banco de dados. Em seguida, podemos adicionar uma mensagem de confirmação se tudo correr bem e uma mensagem de aviso caso não estejamos enviando o tipo de arquivo correto ou exceda o limite máximo de MB.
PROLONGAR

Etapa 18


Voltaremos ao nosso arquivo "index.php" e após a tag de fechamento "" colocaremos uma inclusão no arquivo upload.php
PROLONGAR

Etapa 19


Já temos nosso código pronto, o banco de dados foi criado e a conexão está configurada, agora vamos ver qual é o resultado e verificar se funciona corretamente.
Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Este tutorial ajudou você?

Se não

AJUDE A MELHORAR ESTE TUTORIAL!

Você acha que pode corrigir ou melhorar este tutorial? Você pode enviar sua Edição com as alterações que considerar úteis.
0 usuários editaram este tutorial. Edite e torne-se um especialista reconhecido!
Edite este tutorial

TUTORIAIS SEMELHANTES


Armazene arquivos em campos BLOB com PHP e MySQLGerando arquivos PDF com PHP

8 comentários


David Sanz
29 de agosto de 2015 23:34Adorei o tutorial, é muito interessante saber como fazer upload de arquivos via PHP. Obrigado Ronny
  • Relatório

Ronny Bonillo
30 de agosto de 2015 00:50De nada, David, espero que seja útil para você … Saudações …
  • Relatório

Ruben Gandia
03 de setembro de 2015 18:45

Ronny, usei seu tutorial para corrigir um erro que cometia ao enviar arquivos via PHP. Acabei de me conectar para lhe dar o Obrigada e que também marquei você como Seguir.

  • Relatório

Ronny Bonillo
03 de setembro de 2015 18:47

De nada Ruben, obrigado por me seguir! Estou feliz que você achou útil …

  • Relatório

Diego Agudelo Jimenez
16 de fevereiro de 2016 22:56

Excelente ajuda

  • Relatório

Ronny Bonillo
Ter 02 2016 06:24;-)
  • Relatório

MartinPm
05 de agosto de 2016 20:16

Que tal Ronny, você pode me ajudar se eu obtiver este erro …

Aviso: Índice indefinido: arquivo em C: \ xampp \ htdocs \ upload \ php \ upload.php na linha3
Aviso: argumento inválido fornecido para foreach () inC: \ xampp \ htdocs \ upload \ php \ upload.php na linha 3
Aviso: Índice indefinido: arquivo em C: \ xampp \ htdocs \ upload \ php \ upload.php na linha 7
Aviso: Índice indefinido: arquivo em C: \ xampp \ htdocs \ upload \ php \ upload.php na linha 8
Aviso: Índice indefinido: arquivo em C: \ xampp \ htdocs \ upload \ php \ upload.php na linha 10

  • Relatório

josenumis
Dec2021-202221-2022 17:23Olá, copiei como está, mas mudando o nome do servidor etc (que não é local) e não carrega os arquivos ou me dá um erro (me permite selecionar o arquivo) se não selecionou, ele diz eu seleciono, mas quando eu envio para o servidor não faz nada alguém pode me enviar os códigos para verificar se há algo errado)? Eu acho que está tudo bem. Meu email é [email protected] muito obrigado.
  • Relatório
Não espere mais e entre no SolveticDeixe seus comentários e aproveite a conta de usuário Junte-se a nós!
  • Criar uma contaCadastre-se GRATUITAMENTE para ter sua conta SolveticRegistre uma conta
  • IdentificarVocê já tem uma conta? Cadastre-se aquiIdentifique-me em minha conta

    Em formação

    • Publicados 27 de agosto de 2015 21:10
    • Atualizada 28 de agosto de 2015 08:21
    • Visitas 15,8K
    • NívelAvançado

    Tutoriais de PHP mais recentes
    • Como instalar pHpMyAdmin no Ubuntu 20.04
    • Instale o Laravel PHP Framework CentOS 8 com NGINX
    • Instale e configure o OPcache para desempenho de PHP no CentOS 7
    • Como instalar o Laravel PHP Web Framework no CentOS
    Veja mais de PHP
    wave wave wave wave wave