`` `php
php
// Credenciais de banco de dados
$ servername ="localhost";
$ userName ="nome de usuário";
$ senha ="senha";
$ dbname ="myDatabase";
// Crie conexão
$ conn =new mysqli ($ servername, $ nome de usuário, $ senha, $ dbname);
// Verifique a conexão
if ($ conn-> Connect_error) {
Die ("Falha na conexão:". $ Conn-> Connect_error);
}
// Detalhes de upload do arquivo
$ TARGEN_DIR ="Uploads/";
$ TARGEN_FILE =$ TARGEN_DIR. nome de base ($ _ arquivos ["fileTouPload"] ["nome"]);
$ uPLOPLOK =1;
$ imageFileType =strTolower (pathinfo ($ Target_file, pathinfo_extension));
// Verifique se o arquivo de imagem é uma imagem real ou imagem falsa
if (isset ($ _ post ["submit"])) {
$ check =getImagesize ($ _ files ["fileTouPload"] ["tmp_name"]);
if ($ check! ==false) {
eco "o arquivo é uma imagem -". $ cheque ["MIME"]. ".";
$ uPLOPLOK =1;
} outro {
eco "o arquivo não é uma imagem";
$ uPLOPLOK =0;
}
}
// Verifique se o arquivo já existe
if (file_exists ($ target_file)) {
eco "Desculpe, o arquivo já existe.";
$ uPLOPLOK =0;
}
// Verifique o tamanho do arquivo
if ($ _files ["fileTouPload"] ["tamanho"]> 500000) {
eco "Desculpe, seu arquivo é muito grande.";
$ uPLOPLOK =0;
}
// Permitir determinados formatos de arquivo
if ($ imageFileType! ="jpg" &&$ imagefiletype! ="png" &&$ imageFiletype! ="jpeg"
&&$ imagefiletype! ="gif") {
eco "Desculpe, apenas os arquivos JPG, JPEG, PNG e GIF são permitidos.";
$ uPLOPLOK =0;
}
// Verifique se o $ UPLOPLOK está definido como 0 por um erro
if ($ uPLOPLOK ==0) {
eco "Desculpe, seu arquivo não foi enviado.";
// Se está tudo bem, tente fazer upload de arquivo
} outro {
if (move_uploaded_file ($ _ files ["fileTouPload"] ["tmp_name"], $ Target_file)) {
eco "o arquivo". Basename ($ _files ["fileTouPload"] ["nome"]). "foi carregado.";
// Insira detalhes do arquivo no banco de dados
$ FILENAME =BASENAME ($ _ FILS ["FILETOUPLOAD"] ["nome"]);
$ file_path =$ target_file;
$ sql ="inserir em arquivos (nome do arquivo, file_path) ('$ filename', '$ file_path')";
if ($ conn-> Query ($ sql) ===true) {
eco "novo registro criado com sucesso";
} outro {
eco "erro:". $ sql. "
". $ Conn-> erro;
}
} outro {
eco "Desculpe, houve um erro no upload do seu arquivo.";
}
}
$ conn-> close ();
?>
`` `
Explicação: 1.
Configuração do banco de dados: - Estabeleça uma conexão com o seu banco de dados MySQL usando a extensão `mysqli`.
- Substitua os espaços reservados como o 'nome de usuário`, `senha` e` mydatabase` pelas suas credenciais reais de banco de dados.
2.
Manuseio de upload de arquivos: - Use a matriz '$ _files` superglobal para acessar informações sobre o arquivo carregado.
- Configure um diretório de destino (`$ Target_dir`) onde o arquivo será salvo.
- Execute a validação básica:
- Verifique se o arquivo carregado é uma imagem real (usando `getImagesize`).
- Verifique se o arquivo já existe no diretório de destino.
- Verifique se o tamanho do arquivo está dentro dos limites permitidos.
- Permitir apenas determinados formatos de arquivo (por exemplo, JPG, PNG, GIF).
3.
armazenamento de arquivo: - Se a validação passar, use `move_uploaded_file` para mover o arquivo enviado temporário para o diretório de destino.
4.
Inserção do banco de dados: - Depois de armazenar com sucesso o arquivo, prepare uma consulta SQL para inserir as informações do arquivo em seu banco de dados.
- Isso normalmente inclui o nome do arquivo e o caminho para o arquivo.
- Use o método `$ Conn-> Query` para executar a consulta SQL.
Notas importantes: -
Segurança: Sempre valide a entrada do usuário e o upload de arquivos para evitar vulnerabilidades de segurança, como ataques XSS ou injeção de arquivo.
-
Tabela de banco de dados: Verifique se você possui uma tabela de banco de dados adequada para armazenar informações de arquivo (por exemplo, `Arquivos` tabela com colunas como` nome do arquivo`, `file_path`,` file_size`, etc.).
-
Manuseio de erro: Lidar com possíveis erros durante o upload de arquivos e a inserção do banco de dados. Exibir mensagens apropriadas para o usuário.
-
Limites de tamanho de arquivo: Considere definir limites de tamanho de arquivo apropriados para evitar a sobrecarga do servidor.
-
Tipos de arquivo: Você pode modificar os tipos de arquivo permitidos com base nos requisitos do seu aplicativo.
-
Santização de dados: Higilize o nome do arquivo e outros dados antes de armazená -los no banco de dados para evitar ataques de injeção de SQL.
-
Arquivos grandes: Para lidar com arquivos grandes, considere o uso de técnicas como chunking ou uploads de streaming.
Lembre -se de adaptar este snippet de código ao seu esquema de banco de dados específico e requisitos de upload de arquivos.