2
I have a simple system that uploads the image to a folder and writes the name and url to the database. But when I select an image larger than 2mb of the error in the target vaiavel that is equal to $destination = "folder/". filename
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8" />
<title>Upload de arquivos</title>
</head>
<body>
<?php
$host = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'diary';
$dsn = "mysql:host={$host};port=3306;dbname={$banco}";
try
{
// Conectando
$pdo = new PDO($dsn, $usuario, $senha);
}
catch (PDOException $e) {
// Se ocorrer algum erro na conexão
die($e->getMessage());
}
$categoria = $_POST['tag'];
$autor = $_POST['autor'];
$data = $_POST['datapublicacao'];
if($autor == null){
$autor = "Anônimo";
echo $autor;
}
if($categoria == null){
$categoria = "texto,simples,comum,desabafo";
echo $categoria;
}
if($data == null){
$data = date("d/m/Y");
echo $data;
}
define('TAMANHO_MAXIMO', (4 * 1024 * 1024));
// verifica se foi enviado um arquivo
if(isset($_FILES['arquivo']['name']) && $_FILES["arquivo"]["error"] == 0)
{
echo "Você enviou o arquivo: <strong>" . $_FILES['arquivo']['name'] . "</strong><br />";
echo "Este arquivo é do tipo: <strong>" . $_FILES['arquivo']['type'] . "</strong><br />";
echo "Temporáriamente foi salvo em: <strong>" . $_FILES['arquivo']['tmp_name'] . "</strong><br />";
echo "Seu tamanho é: <strong>" . $_FILES['arquivo']['size'] . "</strong> Bytes<br /><br />";
$arquivo_tmp = $_FILES['arquivo']['tmp_name'];
$nome = $_FILES['arquivo']['name'];
// Pega a extensao
$extensao = strrchr($nome, '.');
// Converte a extensao para mimusculo
$extensao = strtolower($extensao);
// Somente imagens, .jpg;.jpeg;.txt;.gif;.png
// Aqui eu enfilero as extesões permitidas e separo por ';'
// Isso server apenas para eu poder pesquisar dentro desta String
if(strstr('.jpg;.jpeg;.gif;.png;.svg', $extensao))
{
// Cria um nome único para esta imagem
// Evita que duplique as imagens no servidor.
$novoNome = $nome . '.' . $extensao;
// Concatena a pasta com o nome
$destino = 'fotos/' .$nome;
// tenta mover o arquivo para o destino
if( @move_uploaded_file( $arquivo_tmp, $destino ))
{
echo "Arquivo salvo com sucesso em : <strong>" . $destino . "</strong><br />";
//echo "<img src=\"" . $destino . "\" />";
}
else
echo "Erro ao salvar o arquivo. Aparentemente você não tem permissão de escrita.<br />";
}
else
echo "Você poderá enviar apenas imagens ";
}
else
{
echo "Você não enviou nenhum arquivo!";
}
$urltxt = $destino;
//gravar formulario no banco de dados
$stmt = $pdo->prepare('INSERT INTO imagens (nome, urlimg, autor, datadepublicacao, categoria) VALUES (:nome, :urlimg, :autor, :datadepublicacao, :categoria)');
$stmt->bindParam(':nome', $nome,PDO::PARAM_STR);
//$cadastro->bindParam(':nome', $nome, PDO::PARAM_STR);
$stmt->bindParam(':urlimg',$urltxt, PDO::PARAM_STR);
$stmt->bindParam(':autor',$autor,PDO::PARAM_STR);
$stmt->bindParam(':datadepublicacao',$data,PDO::PARAM_STR);
$stmt->bindParam(':categoria',$categoria,PDO::PARAM_STR);
$stmt->execute();
?>
</body>
</html>