• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

tcabaco

Porque é que me está a limitar o upload size dos ficheiros?

10 mensagens neste tópico

Boas,

tenho um formulario que tem duas caixas de file e 4 de texto normais. ao clicar em submit vai para o ficheiro php inserção que tem o seguinte codigo:

<?php

require_once('connection.php');
    
ini_set('post_max_size', '10000000');
ini_set('upload_max_filesize', '10000000');

$preview = basename( $_FILES['preview']['name']);
$ficheiro = basename( $_FILES['ficheiro']['name']);
    $target_preview = "mp3player/previews/";
$target_ficheiro = "extras/musica/";
    $targetPreview = $target_preview . basename( $_FILES['preview']['name']) ;
$targetFicheiro = $target_ficheiro . basename( $_FILES['ficheiro']['name']) ;

if(move_uploaded_file($_FILES['preview']['tmp_name'], $targetPreview))
{ };
if(move_uploaded_file($_FILES['ficheiro']['tmp_name'], $targetFicheiro))
{ };

$artista = $_POST['artista'];
$titulo = $_POST['titulo'];
$duracao = $_POST['duracao'];		
$tamanho = $_POST['tamanho'];

$ja = 0;
$query = mysql_query("SELECT * FROM e_musica");
while ( $regist = mysql_fetch_object($query)) { 
$titulo2 = $regist->titulo;
$artista2 = $regist->artista;
if($titulo2 == $titulo && $artista2 == $artista) {
$ja = 1;
	}
}

if($ja == 0) {

		$sql = "INSERT INTO `e_musica` ( `artista` , `titulo` , `duracao` , `tamanho`";
		if($preview) {
			$sql.=", `preview`";
		}
		if($ficheiro) {
			$sql.=", `ficheiro`";
		}
		$sql.= "
		 ) VALUES ('$artista','$titulo','$duracao','$tamanho'";
		 if($preview) {
			$sql.=",'$preview'";
		}
		 if($ficheiro) {
		 	$sql.=",'$ficheiro'";
		 }			 
		 $sql.= "
		 )";

		mysql_query($sql);
} else {
echo "<br><center>Já existe um registo com esses dados!</center>";
echo "<center><a href='e_musica_list.php'>Voltar</a></center>";
	}

		if($sql){
			echo "<br /><center>Registo inserido com sucesso.</center></font>";
			echo "<center><a href='e_musica_list.php'>Voltar</a></center>";
		}						
?>

Supostamente ele devia enviar ficheiros ate 10mb de tamanho, mas nao o faz..

Mas o mais estranho de tudo é que eu testo com uma musica de 1,45mb e ele adiciona, mas quando adiciono uma de 2,60 ele ja nao adiciona.. deve ter um limite entre estes dois valores pois se o tamanho do ficheiro for maior n insere, se for inferior insere.. porque? esta alguma coisa mal no codigo para ele atribuir um tamanho por defeito? hum.. o codigo funciona bem, ate adiciona o nome do ficheiro na base de dados, simplesmente nao o mete na pasta que mandei.. as directoria das pastas tambem estao bem.. e testei tanto no pc\localhost como no server online e nao da (so para o caso de poder ser aquele problema das permissoes.......nao sei mesmo.. alguem me ajuda pf?

obrigado!

P.S.: o mais engracado é que neste codigo ja funciona.. ora vejam:

<?php

require_once('connection.php');

if(isset($_POST['submit']))  { 

ini_set ("sendmail_from","newsletter@tekilla.net");
ini_set('post_max_size', '10000000');
ini_set('upload_max_filesize', '10000000');
$imagem = basename( $_FILES['imagem']['name']);
$target = "newsletter/conteudo/";
$target = $target . basename( $_FILES['imagem']['name']) ;
if(move_uploaded_file($_FILES['imagem']['tmp_name'], $target))
{};

echo "Enviado para:<br>";

$result = mysql_query("SELECT email FROM newsletter");
  while ( $registo = mysql_fetch_object($result)) { 
	$para = $registo->email.','; 

$mensagem = $_POST['mensagem'];
$subject = "NEWSLETTER";

$headers= "From:TEKILLA <newsletter@tekilla.net>\r\n";
$headers.="Content-Type: text/html;\r\n charset=\"iso-8859-1\"\r\n";
$body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
$body.= '<html xmlns="http://www.w3.org/1999/xhtml">';
$body.= '<head>';
$body.= '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />';
$body.= '<title>newsletter</title>';
$body.= '</head>';
$body.= '<body bgcolor="#FFFFFF">';
$body.= '<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#000000">';
$body.= '  <tr>';
$body.= '    <td><p><img src="http://www.aqueledesign.com/tekilla/office/newsletter/imagem/header.jpg" width="500" height="79" align="absmiddle" /></p>';
$body.= '        <table width="400" border="0" align="center" cellpadding="0" cellspacing="0">';
$body.= '    <tr>';
$body.= '     <td><p><font color="#FFFFFF" size="1" face="Trebuchet MS">'.$mensagem.'</font></p></td>';
$body.= '    </tr>';
$body.= '    <tr>';
$body.= '      <td></td>';
$body.= '    </tr>';
$body.= '    <tr>';
$body.= '      <td><a href="http://www.aqueledesign.com/tekilla/office/newsletter/conteudo/'.$imagem.'"><img src="http://www.aqueledesign.com/tekilla/office/newsletter/conteudo/'.$imagem.'" width="400" border="0"/></a></td>';
$body.= '    </tr>';
$body.= '  </table>';
$body.= '    <p><img src="http://tekilla.aqueledesign.com/office/newsletter/imagem/footer.jpg" width="500" height="30" /></p></td>';
$body.= '  </tr>';
$body.= '</table>';
$body.= '</body>';
$body.= '</html>';


mail($para, $subject, $body, $headers);

echo  "$para<br>";

}
} else { 
echo "camelos!! nao deu tigas..";

}
?>

que é um codigo para enviar uma newsletter por mail.. e a imagem vai para a pasta e recebida no mail.. estranho..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

utiliza o botão da pesquisa que logo encontras a resposta... se não é de ontem, é de anteontem...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

utiliza o botão da pesquisa que logo encontras a resposta... se não é de ontem, é de anteontem...

Ele tinha o ini_set('post_max_size', '10000000');

ini_set('upload_max_filesize', '10000000');

no código inicial, daí eu não ver o porquê da tua resposta. ;)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

quase que jurava que faltava um deles... se estava, ok, my bad... as minhas desculpas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hum.. lol.

conclusao, não está nada de errado com o código? ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já verifiquei as permissões, está tudo bem.. não consigo é inserir ficheiros tipo musicas e de outras extensoes.. imagens consigo.. alias, qlq ficheiro superior a 2mb mais ou menos n dá.. ninguem sabe o q poderá ser?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

penso que é relativamente idêntico a um outro post qua já vi aqui.

como tens o teu .htaccess ?

abraço,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em vez de:

ini_set('post_max_size', '10000000');
ini_set('upload_max_filesize', '10000000');

Tenta por:

ini_set('post_max_size', '10M' );
ini_set('upload_max_filesize', '10M' );

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora faz também o seguinte para saberes qual é o valor actual do upload_max_filesize no php.ini

echo ini_get( 'post_max_size') ."\n";
echo ini_get(  'upload_max_filesize' )."\n";

Se for maior que 5M acho não vale a pena estar a usar a função ini_set 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora