Ir para conteúdo

POWERED BY:

Arquivado

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

cassiombc

Função Upload Não Está funcionando

Recommended Posts

Galera por favor alguem me ajude ja faz uma semana que não consigo colocar esta funcção para funcionar pois não sei o que esta acontecendo.

Uso o filezila para tranferencia de arquivos FTP, alterei os atributos da pasta onde vai ficar as imagens para as permissões de GRUPO,PROPRIETARIO e PUBLICO(ler , escrever e executar).

 

Ja tentei varios formularios na net mas nehum funciona alguem me ajuda por favor

São dois um é o formulario

1:testando2.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=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<form enctype="multipart/form-data" action="teste2.php" method="post">
send this file <input name="foto" type="file"/>
<input type="submit" value="send file" />
</form>

</body>
</html>

 

o outro é

2:teste2.php

<?php


if(!$_FILES){
echo 'Nenhum arquivo enviado!';
}else{
$file_name = $_FILES['foto']['name'];
$file_type = $_FILES['foto']['type'];
$file_size = $_FILES['foto']['size'];
$file_tmp_name = $_FILES['foto']['tmp_name'];
$error = $_FILES['foto']['error'];
}

switch ($error){
case 0:
break;
case 1:
echo 'O tamanho do arquivo é maior que o definido nas configurações do PHP!';
break;
case 2:
echo 'O tamanho do arquivo é maior do que o permitido!';
break;
case 3:
echo 'O upload não foi concluÃ!';
break;
case 4:
echo 'O upload não foi feito!';
break;
}
$destino = '/html/fotos';
if($error == 0){
if(!is_uploaded_file($file_tmp_name)){
echo 'Erro ao processar arquivo!';
print_r($_FILES);
}else{
if(!move_uploaded_file($file_tmp_name,$destino.$file_name)){
echo 'Não foi possà salvar o arquivo!';
}else{
echo 'Processo concluà com sucesso!<br>';
echo "Nome do arquivo: $file_name<br>";
echo "Tipo de arquivo: $file_type<br>";
echo "Tamanho em byte: $file_size<br>";
}
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque isso no início do seu script e veja o que retorna.

echo "<pre>";
print_r($_FILES);
echo "</pre>";
exit;

Ah, outro detalhe, tem um erro no caminho "destino" do arquivo.

 

$destino = '/html/fotos';
$destino . $file_name; // /html/fotosnome_do_arquivo

altere para

$destino = '/html/fotos/'; // Você esqueceu da "/" no final

Compartilhar este post


Link para o post
Compartilhar em outros sites

[error] => 6
veja:

http://php.net/manual/en/features.file-upload.errors.php

 

UPLOAD_ERR_NO_TMP_DIR

Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.

entre em contato com a hospedagem, se não conseguir configurar a pasta temp atráves de ini_set

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu posso solicitar a eles?

e onde eu posso configurar o ini.set???

 

Eu não entendi muito bem não sobre o ini.set

Como eu devo Configurar ele

E a respeito do Servidor o que devo cobrar dele

Desculpa a duplicidade de post

Compartilhar este post


Link para o post
Compartilhar em outros sites

peça para a hospedagem configurar a pasta temporária.

 

upload_tmp_dir

http://br2.php.net/manual/pt_BR/ini.core.php#ini.upload-tmp-dir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu criei uma pasta chamada temp dentro de fotos e no php.ini

; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = ftp://root@jornaldeeventos.com.br@ftp.jornaldeeventos.com.br/html/fotos/temp

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 300k

Me expressei mal

no php.ini eu coloquei

upload_tmp_dir = ftp://root@jornaldeeventos.com.br@ftp.jornaldeeventos.com.br/html/temp

 

no script

<?php
print_r($_FILES);
if(!$_FILES){
echo 'Nenhum arquivo enviado!';
}else{
$file_name = $_FILES['foto']['name'];
$file_type = $_FILES['foto']['type'];
$file_size = $_FILES['foto']['size'];
$file_tmp_name = $_FILES['foto']['tmp_name'];
$error = $_FILES['foto']['error'];
}

switch ($error){
case 0:
break;
case 1:
echo 'O tamanho do arquivo é maior que o definido nas configurações do PHP!';
break;
case 2:
echo 'O tamanho do arquivo é maior do que o permitido!';
break;
case 3:
echo 'O upload não foi concluÃ!';
break;
case 4:
echo 'O upload não foi feito!';
break;
}
$destino= 'ftp://root@jornaldeeventos.com.br@ftp.jornaldeeventos.com.br/html/fotos/';

if($error == 0){
if(!is_uploaded_file($file_tmp_name)){
echo 'Erro ao processar arquivo!';
print_r($_FILES);
}else{
	
if(!move_uploaded_file($file_tmp_name,$destino.$file_name)){
echo 'Não foi possà salvar o arquivo!';
}else{
echo 'Processo concluà com sucesso!<br>';
echo "Nome do arquivo: $file_name<br>";
echo "Tipo de arquivo: $file_type<br>";
echo "Tamanho em byte: $file_size<br>";
}
}
}
?>

Eu falei com o servidor eles disseram que é padrão para todos os clientes

e nao me forneceu o caminho

o que faço?

Me ajudem porfavor

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie um arquivo .php com a função phpinfo() e envie ao seu servidor.

Em seguida acesse este arquivo e veja as configurações...

 

phpinfo.php

<?php phpinfo(); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja a linha:

upload_tmp_dir /export/nfs2/virtdom/jornaldeeventos.com.br/tmp/ /tmp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faço o que com essse caminho?

eu ja coloquei ele no php.ini

e no script eu coloquei o caminho da pasta

tipo no php ini. esta assim:



;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = /export/nfs2/virtdom/jornaldeeventos.com.br/tmp/

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 300k


e No script está assim

 

<?php
$destino = 'ftp://root@jornaldeeventos.com.br@ftp.jornaldeeventos.com.br/html/fotos/';
echo"<script>alert('1')</script>";

if(!$_FILES){
echo 'Nenhum arquivo enviado!';
}else{
$file_name = $_FILES['foto']['name'];
$file_type = $_FILES['foto']['type'];
$file_size = $_FILES['foto']['size'];
$file_tmp_name = $_FILES['foto']['tmp_name'];
$error = $_FILES['foto']['error'];
echo"<script>alert('2')</script>";
}
echo"<script>alert('3')</script>";
switch ($error){
case 0:
break;
case 1:
echo 'O tamanho do arquivo é maior que o definido nas configurações do PHP!';
break;
case 2:
echo 'O tamanho do arquivo é maior do que o permitido!';
break;
case 3:
echo 'O upload não foi concluÃ!';
break;
case 4:
echo 'O upload não foi feito!';
break;
}
echo"<script>alert('4')</script>";
if($error == 0){
if(!is_uploaded_file($file_tmp_name)){
echo 'Erro ao processar arquivo!';
echo"<script>alert('5')</script>";
}else{
if(!move_uploaded_file($file_tmp_name,$destino.$file_name)){
echo 'Não foi possà salvar o arquivo!';
echo"<script>alert('6')</script>";
}else{
echo 'Processo concluà com sucesso!<br>';
echo "Nome do arquivo: $file_name<br>";
echo "Tipo de arquivo: $file_type<br>";
echo "Tamanho em byte: $file_size<br>";
}
}
}
?>

Galera o formulario continua o mesmo mas o sccript de função eu mudei

<?php
		 
	// Pasta onde o arquivo vai ser salvo
	$_UP['pasta'] = '/html/fotos/';
	 chmod('ftp://root@jornaldeeventos.com.br@ftp.jornaldeeventos.com.br/html/fotos/',1777);
	// Tamanho máximo do arquivo (em Bytes)
	$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
	 
	// Array com as extensões permitidas
	$_UP['extensoes'] = array('jpg', 'png', 'gif');
	 
	// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
	$_UP['renomeia'] = false;
	 
	// Array com os tipos de erros de upload do PHP
	$_UP['erros'][0] = 'Não houve erro';
	$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
	$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
	$_UP['erros'][4] = 'Não foi feito o upload do arquivo';
	 
	// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
	if ($_FILES['arquivo']['error'] != 0) {
	die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]);
	exit; // Para a execução do script
	}
	 
	// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
	 
	// Faz a verificação da extensão do arquivo
	$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
	if (array_search($extensao, $_UP['extensoes']) === false) {
	echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";
	}
	 
	// Faz a verificação do tamanho do arquivo
	else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
	echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
	}
	 
	// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
	else {
	// Primeiro verifica se deve trocar o nome do arquivo
	if ($_UP['renomeia'] == true) {
	// Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
	$nome_final = time().'.jpg';
	} else {
	// Mantém o nome original do arquivo
	$nome_final = $_FILES['arquivo']['name'];
	}
	 
	// Depois verifica se é possível mover o arquivo para a pasta escolhida
	if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
	// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
	echo "Upload efetuado com sucesso!";
	echo '<br /><a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
	} else {
	// Não foi possível fazer o upload, provavelmente a pasta está incorreta
	echo "Não foi possível enviar o arquivo, tente novamente";
	}
	 
	}
	 
	?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

E agora? qual é o erro ? :huh:

 

A idéia do ini_set, era colocar no início do script:

ini_set('upload_tmp_dir','/tmp');
sendo /tmp a pasta temporária com permissão de escrita.

 

vamos tentar trocar de estratégia?

veja:

http://forum.imasters.com.br/index.php?/topic/391792-upload-de-um-dominio-para-outro-ftp/page__view__findpost__p__1528296

 

um script bem simples para envio de arquivos, com autenticação FTP.

Se continuar dando o erro 6, fale novamente com tua hospedagem, ou simplesmente troque para uma melhor. ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

array(1) { ["arquivo"]=> array(5) { ["name"]=> string(5) "1.bmp" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(6) ["size"]=> int(0) } }

Warning: ftp_connect() [function.ftp-connect]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /export/nfs2/virtdom/jornaldeeventos.com.br/html/teste2.php on line 11

Não conectou em: "mysql5.br.inter.net:3306"

 

Galera o que eu posso fazer ?

apos esse resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

você configurou errado cara.. você colocou o link pro servidor do banco de dados..

 

deveria ser algo como:

ftp.site.com.br lá no parâmetro server da função de conexão de ftp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O codigo esta assim;

 

<?php
if( $_SERVER['REQUEST_METHOD']=='POST' )
{
        var_dump( $_FILES );//apenas para debug
        
        
        
		$servidor = 'ftp.jornaldeeventos.com.br';
                $caminho_absoluto = '/html/fotos/';
                $arquivo = $_FILES['arquivo'];
		ini_set('upload_tmp_dir','/tmp');
        
        $con_id = ftp_connect($servidor) or die( 'Não conectou em: '.$servidor ); 
        ftp_login( $con_id, 'root@jornaldeeventos.com.br', 'senha' );
        
        ftp_put( $con_id, $caminho_absoluto.$arquivo['name'], $arquivo['tmp_name'], FTP_BINARY );
}
?>

O erro que ele dá é o seguinte

array(1) { ["arquivo"]=> array(5) { ["name"]=> string(22) "Cópia de SDC11243.JPG" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(6) ["size"]=> int(0) } }

è mais provável o problema ser no servidor?

ou é algo na programação? pois

de acordo com o que me passaram ate agora vejo que muitas pessoas

testaram e deram certo no meu caso nao estou conseguindo meu

servidor é a inter.net

se tiver alguma sugestão de servidor melhor

agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caras, alguém pode me ajudar? to com o mesmo erro tanto em safe_mode on como en safe_mode off, no on a pasta é /tmp

Mas não ta funcionando nem de um jeito nem de outro.

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.