Ir para conteúdo

POWERED BY:

Arquivado

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

vidaloka860

Partir arquivos por php

Recommended Posts

Sempre quando posto que preciso fazer upload de arquivos grandes recomendão mudar o php.ini ou htccess

so que nenhum deu resultado.

 

No entanto minha professora falou que tem uma função que parte o arquivo para upar e depois une no servidor, como faz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui esta a função

Depois de extrair a file pelo $_FILES["name"];

'name' = nome que voce denominou no formulario.

faça isso :

move_uploaded_file($_FILES["name"]["tmp_name"],"pastadestino/". $_FILES["name"]["name"])

"pastadetino/" = pasta onde o arquivo ficará.

$_FILES["name"]["tmp_name"] = o nome da cópia temporario do arquivo .

$_FILES["name"]["name"] = o nome do arquivo ex: image.png.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não testei esse codigo, mais pelo que percebi ele não vai resolver.

 

eu uso assim

$imagem = $_FILES["img"];
$caminho = "imagens/";
$upload = $caminho . $imagem["name"];
if (!move_uploaded_file($imagem["tmp_name"], $upload))
	header('location: ' . $fail);
else
	header('location: ' . $sucesso);

so que arquivos com mais de 10mb caem a conexão, como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostra o codigo inteiro pois isto está sem sentido. :huh:

 

Para caso de tamanho use

if($_FILES["name"]["size"] > 31457280){
echo "Arquivo muito grande.";
die();
}

31457280 = 30mb em bytes

Compartilhar este post


Link para o post
Compartilhar em outros sites

so que arquivos com mais de 10mb caem a conexão, como resolver?

o que exatamente ocorre? dá erro? qual?

use o índice 'error' para saber o erro e detector o motivo do problema. veja mais aqui:

http://php.net/manual/pt_BR/features.file-upload.php

 

dividir um arquivo de 10 MB em 10 partes de 1 MB não vai resolver, pois o tráfego de dados será o mesmo. Note que existe upload_max_filesize, que é o tamanho máximo de cada arquivo enviado. Porém, post_max_size é o tamanho total da requisição POST, ou seja, a soma de todos os arquivos enviados. Se esta diretiva for a responsável pelo impedimento do envio, dividir o arquivo não resolverá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel o codigo inteiro é

<?php

$fail = "index.php";
$sucesso = "index.php";

$arqTemp = $_FILES['img']['name']; 


$variavel2 = rand(584784412,9845124584124);
$variavel3 = "A incrementear";

$session = $_SESSION['MM_Username'];

$sql = "INSERT INTO `a4902151_servido`.`nome_arquivos`(nome1, nome2, nome3, IMA_NAME) VALUES('$session', '$variavel2', '$variavel3','$arqTemp')";
mysql_query($sql) or die ("erro na pagina function".mysql_error());


$imagem = $_FILES["img"];
$caminho = "imagens/";
$upload = $caminho . $imagem["name"];
if (!move_uploaded_file($imagem["tmp_name"], $upload))
	header('location: ' . $fail);
else
	header('location: ' . $sucesso);

?>

 

Beraldo, naun da um erro especifico, a pagina cae e pede pra olhar nas configurações de lan, ou fala que a pagina esta temporariamente indisponível ou foi removida.

 

 

É um servidor onde eu ia guardar meus arquivo, jogos e programas criados na faculdade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque :

if($_FILES["name"]["size"] > 31457280){
echo "Arquivo muito grande.";
die();
}

Para avisar caso o arquivo for maior que 10mb.

Caso contrario o problema é o server ou a sua internet que demoram para responder.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo eu to procurando é uma solução pra poder enviar arquivos grandes.

Não so avisos. De momento ele salva ate 6mb, mais preciso que ele salve arquivos de 25mb

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto é bem complicado tente trocar de navegador pois nem todos dão erro de dns. Caso contrario melhor sua internet ou diminua o trafego fechando as pagina abertas se nada der certo o problema é no host.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De momento ele salva ate 6mb, mais preciso que ele salve arquivos de 25mb

dê um echo nos valores do php.ini (também pode ver direto no phpinfo() ):

echo ini_get( 'post_max_size' );
echo ini_get( 'upload_max_filesize' );

 

faça os mesmos testes após mudar essas diretivas via php.ini e htaccess. veja se muda algo

 

 

verifique também os logs de erro do servidor

 

só com as informações que você passou, é difícil dizer o que pode ser

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho o seguinte codigo e testei o que você falou

 

if (!move_uploaded_file($imagem["tmp_name"], $upload))
	//header('location: ' . $fail);*
{		echo "bacana";
echo "<br>";

}
else
	//header('location: ' . $sucesso);
	{echo "bacana";
	echo "<br>";
	}

	echo ini_get( 'posta_max_size' );
	echo "<br>";
echo ini_get( 'upload_max_filesize' );

apareceu na tela

 

bacana

 

100M

 

obs: isso ja com o php.ini e o .htccess no servidor.

 

Sem o php.ini ficou igual....

 

Já sem o htccess

ficou assim

 

bacana

 

2M

 

e no htccess ta assim

RewriteBase /
php_value memory_limit 300M
php_value post_max_size 150M
php_value upload_max_filesize 100M
php_value max_execution_time 1800
php_value session.gc_maxlifetime 3600

Compartilhar este post


Link para o post
Compartilhar em outros sites

if (!move_uploaded_file($imagem["tmp_name"], $upload))
               //header('location: ' . $fail);*
{               echo "bacana";
echo "<br>";

}
       else
               //header('location: ' . $sucesso);
               {echo "bacana";
               echo "<br>";
               }

               echo ini_get( 'posta_max_size' );
               echo "<br>";
echo ini_get( 'upload_max_filesize' );

COLOQUE :

if (!move_uploaded_file($imagem["tmp_name"], $upload)){         
echo "FALHOU";
echo "<br>";

}  else{
echo "Deu Certo";
echo "<br>";
}

echo ini_get( 'posta_max_size' );
echo "<br>";
echo ini_get( 'upload_max_filesize' );

Pois se colocar o bacana as dua opções nao vai saber se de certo ou errado.

Conselho deixe o seu codigo melhor e mais organizado assim diminiu os erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, deu certo, foi adicionado, pois coloquei um arquivo de txt so com a letra a...

 

Normalmente deixo o header, postei so pra ver o resultado

 

echo ini_get( 'posta_max_size' );
echo "<br>";
echo ini_get( 'upload_max_filesize' ); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz outro teste

 

		echo ini_get( 'posta_max_size' );
	echo "<br>";
echo ini_get( 'upload_max_filesize' );
echo "<br>";
echo ini_get("memory_limit");
echo "<br>";
echo ini_get("post_max_size");
echo "<br>";
echo ini_get("upload_max_filesize");
echo "<br>";
echo ini_get("max_execution_time");
echo "<br>";
echo ini_get("session.gc_maxlifetime");

o resultado foi

 

Upado

100M

300M

150M

100M

18000

36000

 

s que isso em um arquivo de texto, a hora que tento upar uma coisa grande, mais que não passa 100mb, da erro e fala que a pagina esta temporariamente indisponivel.

Será que é por que eu uso o formulario na index.php e o meve_uploaded_file em funcao_upload.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem o logo ta mostrando so o que foi upado com sucesso

»Ação »Valor »Estado »Data

Obter o uso do disco 2.4 MB OK 2012-07-09 09:56:17

Obter o uso do disco 2,46 MB OK 2012-07-08 09:52:43

Obter o uso do disco 2.19 MB OK 2012-07-06 15:39:05

Obter o uso do disco 1,78 MB OK 2012-05-15 14:04:34

Obter o uso do disco 1,63 MB OK 2012-05-14 13:00:55

Obter o uso do disco 0,66 MB OK 2012-04-10 09:36:36

Obter o uso do disco 0,67 MB OK 2012-04-09 07:20:25

Obter o uso do disco 0,66 MB OK 2012-04-07 07:05:36

Obter o uso do disco 0.19 MB OK 2012-04-05 09:25:33

Obter o uso do disco 0.02 MB OK 2012-04-04 08:50:05

 

tipo, eu coloquei o

 

set_time_limit(0);

 

e no servidor aparece

 

Warning: set_time_limit() has been disabled for security reasons in /home/a4902151/public_html/index.php on line 1

 

Tem como forçar ativar essa linha, ou algum outro metodo?

Sera que é bom colocar a função que faz o upload na mesma pagina do formulario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

set_time_limit(60);
//bloco de codigo aqui

 

O script abaixado será executado durante 60 segundos ou 1 minuto e depois será fechado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, o problema e que nos 3 servidores que testei o codigo ele é desabilitado por segurança...

 

tem algum outro, ou algum modo de ativar na marra kk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você acessa o sever FTP ou você entra no sever como usuario?

Porque ativar na marra vai ser dificil rs.

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.