Jump to content

Recommended Posts

Posted

oi pessoal!

alguem me pode dizer como faço upload de imagens pó meu site ??

só q com uma diferença, qd passo a imagem do pc para o site quero que ela fique com o nome = ao numero do campo ID

Posted

http://pt.php.net/manual/en/function.move-uploaded-file.php

explicação

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

tem um exemplo simples

para o que tu queres basta mudar esta linha

$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

sendo que ficaria algo do genero

$uploadfile = $uploaddir.$_POST['id'];

/* Estou a supor que o ID é dado no formulario */

Espero que tenha ajudado

Posted

Eu já fiz algo semelhante quando iniciei a aprendizagem do php. era algo assim do tipo:

$uploaddir = $nome."/";      
$uploadfile = $uploaddir . basename($_FILES['file']['name']);      
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {        
echo "File upload...<b>OK</b>";	}
//ficheiro no servidor, agora alterar para imagem.gif
rename ($uploaddir.$file,$uploaddir."imagem.gif");	

// no teu caso não é mudar para este nome mas sim para o que tu quizeres.

penso que é esta a parte que intereca.

cool stuffs to check.

http://blog.zxcoders.com//

Posted

neste momento o site ainda esta a ser feito e tá com erros mas se quiserem podem acompnhar o meu projecto www.splashportal.com, tipo, akilo sp q escreve na bd dá erros, mas fica rd registado

Posted

neste momento o site ainda esta a ser feito e tá com erros mas se quiserem podem acompnhar o meu projecto www.splashportal.com, tipo, akilo sp q escreve na bd dá erros, mas fica rd registado

Tive a ver o site e está com um bom design.

Os erros vais ter de colocar aqui o código para podermos ajudar..

Posted

De momento não tenho muito tempo para ler o que foi dito nos tópicos e perceber porquê que ainda não conseguiste por a funcionar, mas se precisares de um exemplo prático, onde tal funcionalidade esteja a funcionar correctamente, podes dar uma vista de olhos ao meu script de manutenção de fotologs. Podes sacar o script no meu site, exprimenta instala-lo numa directoria qualquer para testes e vê se o upload esta a funcionar, se estiver, vê o código que esta no nz_upload.php e vê o que fizeste de errado.

  • 3 weeks later...
Posted

qd vou escrever na bd o nome do ficheiro aparece o link td não é forma de ser só o nome do file ?

outro prob. qd tento gravar os files do upload no meu localhost ele dá erro, mas se poser esse codigo na net ele já copia na boa.

como é que meto isto a gravar no meu localhost, qd estou a testar gosto de ter certezas...

Posted

Eu já fiz algo semelhante quando iniciei a aprendizagem do php. era algo assim do tipo:

$uploaddir = $nome."/";      
$uploadfile = $uploaddir . basename($_FILES['file']['name']);      
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {        
echo "File upload...<b>OK</b>";	}
//ficheiro no servidor, agora alterar para imagem.gif
rename ($uploaddir.$file,$uploaddir."imagem.gif");	

// no teu caso não é mudar para este nome mas sim para o que tu quizeres.

Aproveitando o código já apresentado........  😁

$uploaddir = $nome."/";      
$nomeFicheiro = $_FILES['file']['name'];     // AQUI ESTAS A GUARDAR NUMA VARIAVEL APENAS O NOME DO FICHEIRO
$uploadfile = $uploaddir . basename($_FILES['file']['name']);      

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))    echo "File upload...<b>OK</b>";	
       
        // AGORA E SO GUARDARES A VARIAVEL $nomeFicheiro na BD


Espero que assim já ajude.

Online Portfolio: Nulldesign

Posted

Aproveito e deixo aqui a minha função para fazer o upload de imagens com restrições em: tipo de foto e tamanho da foto.

function guardarImagemNoServidor($imagem) {	
$erro = "0";
$caminho = "images/Large/";
$caminhoThumb = "images/Small/";
$ficheiro = $imagem['name'];
$imagemNova = $caminho.$ficheiro;

if($imagem['size']>150000) $erro = "Tamanho da imagem superior a 150kb";
else {
	if(move_uploaded_file($imagem['tmp_name'], $imagemNova)) {

		if($imagem['type']=='image/gif') $type = 'gif'; 
		elseif($imagem['type']=='image/png') $type = 'png';
		elseif($imagem['type']=='image/pjpeg') $type = 'jpeg';
		elseif($imagem['type']=='image/jpeg') $type = 'jpeg';

		if ($type == 'gif') $handle = @imagecreatefromgif($imagemNova);
		elseif ($type == 'jpeg') $handle = @imagecreatefromjpeg($imagemNova);
		elseif ($type == 'png') $handle = @imagecreatefrompng($imagemNova);

		$x=imagesx($handle);
		$y=imagesy($handle);                                                   
       
   				if($x > $y){                                
           				$max = $x;                          
           				$min = $y;                          
   				}                                          
   				if($x <= $y){                                
           				$max = $y;                          
           				$min = $x;                          
   				}  
                                         
   			$size_in_pixel = 80;
   			$rate = $max/$size_in_pixel;
   			$final_x = $x/$rate;
   			$final_y = $y/$rate;

   				if($final_x > $x) {
   	        			$final_x = $x;
   	        			$final_y = $y;
   				}
   
   		$final_x = ceil($final_x);
   		$final_y = ceil($final_y);
   			$black_picture = imageCreatetruecolor($final_x,$final_y);
   			imagefill($black_picture,0,0,imagecolorallocate($black_picture, 255, 255, 255));
   			imagecopyresampled($black_picture, $handle, 0, 0, 0, 0,$final_x, $final_y, $x, $y);
                     
		if ($type == 'gif') imagegif($black_picture,$caminhoThumb.'thumb_'.$ficheiro, $size_in_pixel);
		elseif ($type == 'jpeg') imagejpeg($black_picture,$caminhoThumb.'thumb_'.$ficheiro, $size_in_pixel);
		elseif ($type == 'png') imagepng($black_picture,$caminhoThumb.'thumb_'.$ficheiro, $size_in_pixel);
    
   			imagedestroy($handle);
   			imagedestroy($black_picture);	
	}
	else $erro = "Erro a criar imagem";
}

return $erro;
}

EDIT: esqueci-me de dizer que também cria thumbnails das imagens.

Online Portfolio: Nulldesign

Posted
  $destino = "../imgartigo"; //Pasta onde serão armazenados os uploads
$uploaddir = "../imgartigo"."/";      
$nomeFicheiro = $_FILES['file']['name'];     // AQUI ESTAS A GUARDAR NUMA VARIAVEL APENAS O NOME DO FICHEIRO
$uploadfile = $uploaddir . basename($_FILES['file']['name']);      

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))    echo "File upload...<b>OK</b>";	

  $insertSQL = sprintf("INSERT INTO produtos (artigo, descricao, img, preco, familia, nota) VALUES (%s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['artigo'], "text"),
                       GetSQLValueString($_POST['descricao'], "text"),
                       GetSQLValueString($nomeFicheiro, "text"),
                       GetSQLValueString($_POST['preco'], "text"),
                       GetSQLValueString($_POST['familia'], "text"),
                       GetSQLValueString($_POST['nota'], "text"));

ele assim não deveria guardar o nome do file ??

os uploads no meu localhost não estão a passar os files 😁

Posted

3 perguntas:

1ª Estás a executar esse script numa pasta e queres guardar numa pasta que está ao mesmo nivel certo? Exemplo:

root

|

--imgartigo

|

--pastaOndeCorresScript

Esta pergunta deve-se ao facto de teres

$uploaddir = "../imgartigo"."/";  

2ª O Script devolve-te a frase "File Upload.... OK" ?

3ª Não estás a tentar fazer upload de um ficheiro maior que 2MB ?

Existe um parametro no servidor apache (acho, ou no PHP) que te limita os uploads por defeito a 2MB.

Online Portfolio: Nulldesign

Posted

então vê lá bem a minha primeira questão das 3 perguntas..... parece-me que estás a tentar gravar a imagem numa pasta que não existe.

experimenta lá assim:

$uploaddir = "imgartigo/";     
$nomeFicheiro = $_FILES['file']['name'];     
$uploadfile = $uploaddir.$nomeFicheiro;     

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))    {
                echo "File upload...<b>OK</b>";   
}
else {
               echo "<b>Ocorreu um erro a fazer o upload do ficheiro</b>";
}

  $insertSQL = sprintf("INSERT INTO produtos (artigo, descricao, img, preco, familia, nota) VALUES (%s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['artigo'], "text"),
                       GetSQLValueString($_POST['descricao'], "text"),
                       GetSQLValueString($nomeFicheiro, "text"),
                       GetSQLValueString($_POST['preco'], "text"),
                       GetSQLValueString($_POST['familia'], "text"),
                       GetSQLValueString($_POST['nota'], "text"));

Alterei o caminho para a pasta de destino, algumas pequenas correcções e uma mensagem de erro se não conseguir realizar o upload.

Vê lá se já funciona....

Online Portfolio: Nulldesign

Posted
  $insertSQL = sprintf("INSERT INTO produtos (artigo, descricao, img, preco, familia, nota) VALUES (%s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['artigo'], "text"),
                       GetSQLValueString($_POST['descricao'], "text"),
                       GetSQLValueString($nomeFicheiro, "text"),
                       GetSQLValueString($_POST['preco'], "text"),
                       GetSQLValueString($_POST['familia'], "text"),
                       GetSQLValueString($_POST['nota'], "text"));

aqui como é que escrevem a variavel $nomeFicheiro na bd ?? estou a ficar desesperado... se conseguisse por isto a escrever resolvia um grande problema...

Posted

não funciona porque?

$nomeFicheiro se só contêm o nome do ficheiro, ao listar os  valores da tabela produtos

tens que por isso como link

já para nao falar que isso apenas esta a escrever para a variavel $insertSQL essa string

depois tens que fazer o query a BD

reconheço ai code do dreamweaver, aproveitar os popups do dreamweaver para mexer em PHP e mySQL não te leva a aprender nada.

Posted

ok vou, vou refazer isto á lá páta, desde de que descobri q o dreamwaver fazia este tipo de coisas começei a utilizalo. mas em tempo fazia á mão.

Posted

ok vou, vou refazer isto á lá páta, desde de que descobri q o dreamwaver fazia este tipo de coisas começei a utilizalo. mas em tempo fazia á mão.

qual é o teu host? eu também nao cosneguia porcausa do host, axo eu :O lol pk tambem nao conseguia instalar um smf :S

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.