Ir para conteúdo
Fórum Script Brasil
  • 0

Upload


lemissel

Pergunta

é o seguinte, esse código já funcionu uma vez para o upload, mas agroa ele n funciona mais a parte de enviar arquivos, só a q leva dados ao bd... o erro q apresenta é o seguinte:

PHP Warning: MAX_FILE_SIZE of -1294967296 bytes exceeded - file [file=C:\Documents and Settings\Meus documentos\img.gif] not saved in Unknown on line 0 
Eis o código
<html>
<head>
<title>Mecanismo de cadastro de BS's</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<p><img src="images/cbs.png" border="0"></p>
<p> 
  <!-- precisa estar logado -->
  <?php
  ini_set ("upload_max_filesize","6000000000");
	/*Algorítmo geral de boletins de serviços

	Cadastro de bs - [mecanismos/bs.php]

  Recebe os dados do formulário (cbs.php), trata os dados e envia para a base de dados.
	O tratamento é feito da seguinte forma:

	-Verifica-se o tamanho do arquivo a ser enviado para o servidor;
	-o tipo do arquivo;
	-copia-se o arquivo para uma pasta no servidor;
	-envia o caminho salvo no servidor para o banco de dados.
	Obs.: precisa estar autenticado.

	Visualização de bs - [bs.php]

	Realiza uma busca na base de dados, retrona os valores e linka o caminho para download do bs
	*/
	//inclusão da página de configuração
	require "config.php";
  
	//variáveis abreviadas
	$numero=$HTTP_POST_VARS['numero'];
	$titulo=$HTTP_POST_VARS['titulo'];
	$aplicacao=$HTTP_POST_VARS['aplicacao'];
	$file_name=$HTTP_POST_FILES['file']['name'];
	$file_type=$HTTP_POST_FILES['file']['type'];
	$file_size=$HTTP_POST_FILES['file']['size'];
	$file_tmp_name=$HTTP_POST_FILES['file']['tmp_name'];
	$file_error=$HTTP_POST_FILES['file']['error'];

	//limpa os dados inseridos para colocar no bd
	$numero=addslashes($numero);
	$titulo=addslashes($titulo);
	$aplicacao=addslashes($aplicacao);


	if($file){
	//Testes antes dda transferência
	//mime
	/*if($file_type!="application/pdf" || $file_type!="application/msword" || $file_type!="application/rtf" || $file_type!="application/zip" || $file_type!="application/mspowerpoint" || $file_type!="")
	{	echo "<center>Você está tentando enviar um arquivo de extensão não válida. Os arquivos aceitos são do tipo .pdf, .zip, .ppt, .pps, .rtf e .doc</center>";
  exit;
	}*/

	//tamanho
	if($file_size > 9000000000000000)
	{	echo '<center>Seu arquivo é muito grande e não pode ser enviado.</center>';
  exit;
	}

	//erros
	switch($file_error)
	{	case 0: //sem erros
    break;
  case 1: echo 'Seu arquivo está muito grande conforme o tamanho definido no servidor'; break;
  case 2: echo 'Seu arquivo está muito grande para esta aplicação'; break;
  case 3: echo 'Seu arquivo foi parcialmente enviado'; break;
  case 4: echo 'O arquivo não pode ser enviado'; break;
	}

	//Trensferindo o arquivo...
	$diretorio = 'D:\domains\dominio.com.br\wwroot\a\mecanismos\bs'; //endereco fornecido pelo host
	$uploadfile = $diretorio . $file_name;
	print "<pre><b>";
	if (move_uploaded_file($file_tmp_name, $diretorio . $file_name)) {
    print "O arquivo é valido e foi carregado com sucesso. Obrigado:\n";
    print_r($_FILES);
	} else {
    print "Arquivos não válidos:\n";
    print_r($_FILES);
    exit;
	}
	print "</b></pre>";

	//prepara o caminho do upload para ser enviado ao bd
	$caminho=$diretorio.$file_name;
	$caminho=addslashes($caminho);
	}

	@ mysql_connect($host,$user,$pass) or die ("Ocorreu um erro ao conectar no banco de dados: ".mysql_error());
	@ mysql_select_db('ar') or die ("Ocorreu um erro ao selecionar no banco de dados: ".mysql_error());

	//inserção de dados no bd
	$query=mysql_query("INSERT into $bs (numero, titulo, aplicacao, caminho) values ('".$numero."','".$titulo."','".$aplicacao."','".$caminho."')");


	//verifica se os dados foram inseridos com sucesso
	if($query)
  echo 'Você inseriu os dados com sucesso. <br><a href="index.php?sessao=cbs">Cadastrar outro Boletin de serviço</a>';
	else
	{	echo 'Ocorreu um erro ao inserir os seus dados na base de dados, <a href="javascript:history.go(-2);">volte</a> e tente novamente';
  echo 'O erro da base de dadso foi: '.mysql_error();
	}

  
?>
</p>
<p>&nbsp;</p><p>&nbsp;</p></body>
</html>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest Paulo Márcio

No arquivo php.ini do servidor está definido o tamanho máximo do arquivo para 2 MB, por isso está retornando este err. A variavel MAX_FILE_SIZE está no arquivo php.ini, é só ir lá e alterar para o tamanho que você quiser !!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Ae pessoal, no meu formulário já tem o hidden com um número gigantesco tb só pra teste... e tentei modificar o php.ini assim tb

ini_set ("upload_max_filesize","6000000000");

ini_set ("memory_limit","6000000000");

e não funcionou...

tentei tb um oputro código, não deu esse erro, mas apresentou a seguinte frase:

'Problema: possovel ataque nome do arquivo:uploadcompleto

sendo que eu qm enviei os arquivos td certinho...

esse é o código...

<?php
$userfile=$HTTP_POST_VARS['userfile']['tmp_name'];
$userfile_name=$HTTP_POST_VARS['userfile']['name'];
$userfile_size=$HTTP_POST_VARS['userfile']['size'];
$userfile_type=$HTTP_POST_VARS['userfile']['type'];
$userfile_error=$HTTP_POST_VARS['userfile']['error'];

//verificação de erros
if($userfile_error > 0)
{	echo 'Problemas: ';
  switch($userfile_error)
  {	case 1: echo 'O Arquivo é muito grande conforme servidor'; break;
  	case 2: echo 'O arquivo exedeu ot amnho máximo definido pelo site'; break;
  	case 3: echo 'Parcialmente carregado'; break;
  	case 4: echo 'Arquivo n carregado'; break;
  }
  exit;
}

//caminho do arquivo
$upfile= '/uploads/'.$userfile_name;

//testa o envio e se moveu
if(is_uploaded_file($userfile))
{	
	if(!move_uploaded_file($userfile,$upfile))
	{
  echo 'Problema: Você não pode mover o arquivo';
  exit;
	}
}
else
{	echo 'Problema: possovel ataque nome do arquivo:'.$userfile_name;
}
echo 'upload completo';
?>

valeu por enquanto

Editado por lemissel
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, descobri alguma coisa... utilizando ese último código, eu mandei ele exibir na tela os dados vindos do formulário, resoltado: "NADA"

mas acho q o meu form tá certo...

<form action="envia.php" enctype="multipart/form-data" method="post">

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">

<input type="file" name="userfile">

<input type="submit" value="envia">

</form>

será q o servidor pode bloquear isso sei lá?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...