Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Iniciante1

Problema com upload acima de 1 mega

Recommended Posts

E ai gente, td tranquilo??

 

Olha só, to com mais um problema (sou um cara cheio de problemas... mas que nao é??? hehehehe)

 

Ai é o seguinte tenho o código abaixo pra fazer o upload porém ele só aceita arquivos com até 1 mega e acima disso ele entra no or die do query

 

Segue o código

 

<?php 
// Conexão com o banco de dados
// Verificador de sessão
require "verifica.php";

// Conexão com o banco de dados
require "../conexao.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Prefeitura Municipal de Clevelândia - Cadastro de Usuários</title>
<style type="text/css">

<!--

.style13 { font-size:13px; color:#FFFFFF}
body {
	background-color: #00FF66;
}
.style16 {color: #006600; font-weight: bold; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; }
.style21 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	color: #FFFFFF;
}
.style22 {color: #FFFFFF}
-->
</style>
<style type="text/css">
<!--
body {
	background-color: #49B657;
}
.style2 {
	font-size: 11px;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	color: #FFFFFF;
}
-->
</style>
<link href="file:///C|/Arquivos de programas/Apache Group/Apache2/htdocs/prefeitura/css/estilos.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
a:link {
	font-family:Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	color: #000000;
	text-decoration: none;
}

a:visited {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 11px;
	color: #000000;
	text-decoration: none;
}
a:hover {
	font-family:Verdana, Arial, Helvetica, sans-serif;
	font-size: 14px;
	color: #006600;
	text-decoration: underline;
}
.style23 {
	color: #000000;
	font-style: italic;
}
.style24 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	color: #FFFFFF;
	font-weight: bold;
}


-->
</style>
</head>

<body>
<div align="center">


<table width="79%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="175" colspan="3"><div align="center"><img src="topo/01_area_restrita.jpg" width="114" height="175" /><img src="topo/02_area_restrita.jpg" width="141" height="175" /><img src="topo/03_area_restrita.jpg" width="144" height="175" /><img src="topo/04_area_restrita.jpg" width="157" height="175" /><img src="topo/05_area_restrita.jpg" width="118" height="175" /><img src="topo/06_area_restrita.jpg" width="105" height="175" /></div></td> 
  </tr>
  <tr>
    <td height="41" colspan="3" align="center"><?php	


if(isset($_POST['Salvar']) && $_FILES['userfile']['size'] > 0)
{

	 $id=$_REQUEST["id"];
	 $mes=$_REQUEST["mes"];
	 $ano=$_REQUEST["ano"];
$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
/*if (!$id || !$mes || !$ano || !$fileName || $tmpName || $fileSize || $fileType)  {
	echo  "<font color=blue size=5>Atenção! <br>Todos os campos são obrigatórios!
	</font>";
	//echo"$id,$nome,$login,$Permissao,$senha";

	}else{
*/
/*if ($fileType!=($_FILES['userfile']['application/pdf'])){
echo "tem que ser pdf";
			header("Location: inserir_contas.php");
			exit;

}*/
//else{

$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}
$query = "INSERT INTO upload (id, mes, ano, nome, tamanho, tipo, conteudo, usu_ins, hora_ins) ".
"VALUES ('$id','$mes','$ano','$fileName', '$fileSize', '$fileType', '$content','$_SESSION[id_usuario]', NOW()	)";

mysql_query($query) or die('<font color = white  size=5>Não foi possível incluir o documento, verifique se o código inserido já existe ou se sua conexão com a base de dados está estabelecida corretamente!!
<br><br><br><br><a href=inserir_contas.php>Enviar novamente<br>');


 print(" <font color=Blue size =3 ><b>Arquivo e mês  $fileName incluído com sucesso!</font><br><br><br><br> <font size=2 color= blue>Se desejar incluir mais meses clique em voltar!<br><br><br>");
echo "<div align = center><br><a href=inserir_contas.php>Voltar</a>    »«    <a href=sair.php>Sair<br></div>";
}
else{
echo  "<font color=white size=5>Atenção! <br>Todos os campos são obrigatórios!<br>
Verifique se o arquivo a ser enviado foi escolhido!
	</font>";
	echo "<br><br><br><a href=inserir_contas.php>Enviar novamente<br>";

}
//}
?>
      <div align="center"></div></td>
  </tr>
  <tr>
    <td height="51" colspan="3"> </td>
  </tr>
  <tr>
    <td height="32" colspan="3"> </td>
  </tr>
</table>

Desde já agradeço muito pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele entra neste or die?

 

mysql_query($query) or die('<font color = white  size=5>Não foi possível incluir o documento, verifique se o código inserido já existe ou se sua conexão com a base de dados está estabelecida corretamente!!
<br><br><br><br><a href=inserir_contas.php>Enviar novamente<br>');

Creio que o problema não tenha relação com o tamanho do arquivo, e sim com o nome dele. Troque o código acima por este, para efeito de debug.

 

mysql_query($query) or die('Erro na query. Query executada '.$query.'<br/>O erro do mysql foi '.mysql_error());

Veja o que acontece.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

caiu o server...

 

não aguentou a operação.

 

 

1. há algum motivo específico para salvar o conteúdo do arquivo no banco de dados ?

 

2. como está definido o tipo da coluna onde é armazenado o arquivo ?

 

3. ative também todas as mensagens de erro warnings do php no seu ambiente de desenvolvimento

 

 

 

 

obs não relacionada ao assunto:

veja esse trecho do seu código:

<link href="file:///C|/Arquivos de programas/Apache Group/Apache2/htdocs/prefeitura/css/estilos.css" rel="stylesheet" type="text/css" />
algo de estranho no caminho, não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

caiu o server...

 

não aguentou a operação.

 

 

1. há algum motivo específico para salvar o conteúdo do arquivo no banco de dados ?

 

2. como está definido o tipo da coluna onde é armazenado o arquivo ?

 

3. ative também todas as mensagens de erro warnings do php no seu ambiente de desenvolvimento

 

 

 

 

obs não relacionada ao assunto:

veja esse trecho do seu código:

<link href="file:///C|/Arquivos de programas/Apache Group/Apache2/htdocs/prefeitura/css/estilos.css" rel="stylesheet" type="text/css" />
algo de estranho no caminho, não?

 

Ok

 

1- O motivo é que é um site da prefeitura daqui e preciso que sejam enviadas todas as leis em pdf para o banco, sendo que este tipo de erro aconteceu com o envio de um arquivo com apenas 35 paginas e em pdf. uma lei pode ter muito mais do que isso....

 

2- o tipo da coluna que estao sendo enviados os dados é blob.

 

3- Acredito que toda sestao ativas... eu nao sei como ativar ou desativar, poderia me ajudar nisso???

 

e quanto a linha eu retirei do código...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ativar todas as mensagens de erro, utilize este código.

 

ini_set('display_errors', 1); 
error_reporting(E_ALL);

 

Sobre a sua dúvida, normalmente os arquivos são gravados dentro de uma pasta e somente o nome é gravado no banco de dados.

Neste caso é realmente necessário gravar o arquivo no banco de dados?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ativar todas as mensagens de erro, utilize este código.

 

ini_set('display_errors', 1); 
error_reporting(E_ALL);

 

Sobre a sua dúvida, normalmente os arquivos são gravados dentro de uma pasta e somente o nome é gravado no banco de dados.

Neste caso é realmente necessário gravar o arquivo no banco de dados?

 

Carlos Eduardo

 

Certo então devo mudar o upload e download para um pasta,pois o mysql provavelmente nao suporta arquivos maiores do que 1 mega....

Tentei fazer isso , o upload funcionou certinho só o meu download q eu tinha antes tentei adptar mas nao consegui...

 

Segue abaixo o código...

Desculpem pelo encomod mas da mais uma força ai pessoal...

Arquivo de upload

<?php require('conexao.php'); ?>
<?php
if (!isset($_SESSION)) {
  session_start();
}
?>

<?php
$colname_cfoto_rs = "-1";
if (isset($_SESSION['MM_Username'])) {
  $colname_cfoto_rs = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']);
}
mysql_select_db($Banco, $ConexaoId);
$query_cfoto_rs = sprintf("SELECT * FROM fotos WHERE Id = '%s'", $colname_cfoto_rs);
$cfoto_rs = mysql_query($query_cfoto_rs, $ConexaoId) or die(mysql_error());
$row_cfoto_rs = mysql_fetch_assoc($cfoto_rs);
$totalRows_cfoto_rs = mysql_num_rows($cfoto_rs);
?>
<?php // upload/validação da foto e upload do path para a tabela 
$erro = $config = array();

// Prepara a variável do arquivo
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 100000000;
// Largura máxima (pixels)
$config["largura"] = 100000000;
// Altura máxima (pixels)
$config["altura"]  = 10000000;

// Formulário postado... executa as ações
if($arquivo)
{  
    // Verifica se o mime-type do arquivo é de imagem
    if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg|png)$", $arquivo["type"]))
    {
        $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, 
            bmp, gif ou png. Envie outro arquivo";
    }
    else
    {
        // Verifica tamanho do arquivo
        if($arquivo["size"] > $config["tamanho"])
        {
            $erro[] = "Arquivo em tamanho muito grande! 
        A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. 
        Envie outro arquivo";
        }
        
        // Para verificar as dimensões da imagem
        $tamanhos = getimagesize($arquivo["tmp_name"]);
        
        // Verifica largura
        if($tamanhos[0] > $config["largura"])
        {
            $erro[] = "Largura da imagem não deve 
                ultrapassar " . $config["largura"] . " pixels";
        }

        // Verifica altura
        if($tamanhos[1] > $config["altura"])
        {
            $erro[] = "Altura da imagem não deve 
                ultrapassar " . $config["altura"] . " pixels";
        }
    }
    
    // Imprime as mensagens de erro
    if(sizeof($erro))
    {
        foreach($erro as $err)
        {
            echo " - " . $err . "<BR>";
        }

            }

    // Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
    else
    {
        // Pega extensão do arquivo
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

        // Gera um nome único para a imagem
        $imagem_nome = md5(uniqid(time())) . "." . $ext[1];

        // Caminho de onde a imagem ficará
        $imagem_dir = "fotos/" . $imagem_nome;
        
        //usuario a ser inserido no bd
        $usuariologado = $_SESSION['MM_Username'];
        
        // insere no banco de dados
  $insertSQL = sprintf("INSERT INTO fotos(Id, foto) VALUES ('$usuariologado', '$imagem_nome')");

mysql_select_db($Banco, $ConexaoId);
  $Result1 = mysql_query($insertSQL, $ConexaoId) or die(mysql_error());

       // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

        echo "Sua foto foi enviada com sucesso!";
        echo "<meta http-equiv='refresh' content='1' />";
        
}
}
// atualização/validação da foto e upload do path para a tabela 
$erro = $config = array();

// Prepara a variável do arquivo
$arquivo = isset($_FILES["foto2"]) ? $_FILES["foto2"] : FALSE;

// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 100000000;
// Largura máxima (pixels)
$config["largura"] = 100000000;
// Altura máxima (pixels)
$config["altura"]  = 10000000;

// Formulário postado... executa as ações
if($arquivo)
{  
    // Verifica se o mime-type do arquivo é de imagem
    if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg|png)$", $arquivo["type"]))
    {
        $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, 
            bmp, gif ou png. Envie outro arquivo";
    }
    else
    {
        // Verifica tamanho do arquivo
        if($arquivo["size"] > $config["tamanho"])
        {
            $erro[] = "Arquivo em tamanho muito grande! 
        A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. 
        Envie outro arquivo";
        }
        
        // Para verificar as dimensões da imagem
        $tamanhos = getimagesize($arquivo["tmp_name"]);
        
        // Verifica largura
        if($tamanhos[0] > $config["largura"])
        {
            $erro[] = "Largura da imagem não deve 
                ultrapassar " . $config["largura"] . " pixels";
        }

        // Verifica altura
        if($tamanhos[1] > $config["altura"])
        {
            $erro[] = "Altura da imagem não deve 
                ultrapassar " . $config["altura"] . " pixels";
        }
    }
    
    // Imprime as mensagens de erro
    if(sizeof($erro))
    {
        foreach($erro as $err)
        {
            echo " - " . $err . "<br />";
        }

            }

    // Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
    else
    {
        // Pega extensão do arquivo
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

        // Gera um nome único para a imagem
        $imagem_nome = $row_cfoto_rs['foto'];

        // Caminho de onde a imagem ficará
        $imagem_dir = "fotos/" . $imagem_nome;
        
        // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

        echo "Sua foto foi atualiza com sucesso!";
        echo "<meta http-equiv='refresh' content='1' />";
        
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
#Layer1 {
    position:absolute;
    z-index:4;
    left: 10px;
    top: 49px;
    background-color: #FF9900;
}
#Layer2 {
    position:absolute;
    width:386px;
    height:300px;
    z-index:2;
    left: 351px;
    top: 37px;

}
#Layer3 {
    position:absolute;
    width:324px;
    height:188px;
    z-index:3;
    left: 10px;
    top: 180px;
}
#Layer4 {
position:absolute;
    width:237px;
    height:67px;
    z-index:1;
    left: 10px;
    top: 49px;
    background-image:url(/eteca/fotos/fundo1.gif);
}
-->
</style>
</head>

<body>
<?php if ($totalRows_cfoto_rs == 0) { // Show if recordset empty ?>
  <div id="Layer1">
    <form  method="post"  enctype="multipart/form-data" name="uploadform">
  <input type="file" name="foto"><br /> 
  <input type="submit" value="Enviar Foto!">
  </form>
  </div> 
  <?php } // Show if recordset empty ?>
  <div id="Layer2"></div>
  <?php if ($totalRows_cfoto_rs > 0) { // Show if recordset not empty ?>
  <div id="Layer3">
    <p>Foto atual : <img src="fotos/<?php echo $row_cfoto_rs['foto']; ?>" /> </p>
    <p>Atualizar foto :</p>
     <form  method="post"  enctype="multipart/form-data" name="uploadform2">
       <input type="file" name="foto2"><br /> 
       <input type="submit" value="Enviar Foto!">
    </form>
    <p><a href="deletar.php?foto=<?php echo $row_cfoto_rs['foto']; ?>">Deletar foto </a></p>
    <p> </p>
  </div>
    <?php } // Show if recordset not empty ?>
    <div id="Layer4"></div>
</body>
</html>
<?php
mysql_free_result($cfoto_rs);
?>


Arquivo de download

<?php
// Define o tempo máximo de execução em 0 para as conexões lentas
set_time_limit(0);

// Arqui você faz as validações e/ou pega os dados do banco de dados

$aquivoNome = 'imagem.jpg'; // nome do arquivo que será enviado p/ download
$arquivoLocal = '/Fotos/'.$aquivoNome; // caminho absoluto do arquivo

// Verifica se o arquivo não existe
if (!file_exists($arquivoLocal)) {
// Exiba uma mensagem de erro caso ele não exista
exit;
}

// Aqui você pode aumentar o contador de downloads

// Definimos o novo nome do arquivo
$novoNome = 'imagem_nova.jpg';

// Configuramos os headers que serão enviados para o browser
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$novoNome.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($aquivoNome));
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Expires: 0');

// Envia o arquivo para o cliente
readfile($aquivoNome);
?>

Desde já obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo então devo mudar o upload e download para um pasta,pois o mysql provavelmente nao suporta arquivos maiores do que 1 mega....

suporta sim, mas precisa estar configurado para isso..

 

apesar disso, é recomendável estruturar melhor, salvando os arquivos em diretórios do systema de arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai pessoal...

 

Será que vcs poderiam me ajudar a descobrir como inserir arquivos maiores que 2 mb no mysql ou em uma pasta que seja pois eu tenho os códigos funcionando de upload de arquivos para dados do tipo blob no mysql escritos em php mas esse upload só atinge o máximo de 1 mb para o bd, ai modifiquei para upload em uma pasta e assim ele atinge o maximo de 2 mb...

 

 

Será que tem algo na configuraçao do mysql que pode ser mudado para poder fazer esse upload de arquivos grandes??????

 

 

 

Vlw se me ajudarem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Iniciante1, não duplique seus tópicos. Como é o mesmo assunto, os dois tópicos foram unidos.

 

Agora sobre a sua dúvida, você precisa decidir.

 

Quer gravar o arquivo no Banco de dados ou não?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok

 

me desculpe

 

assim, se fosse possivel gravar no bd seria mais facil pra mim pois os arquivos de upload e de download estao redondinhos...

 

se for possivel incluir no bd sera que você poderia me ajudar a fazer isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, por ser uma configuração do Mysql, vou mover pra lá que o pessoal pode te ajudar melhor.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.