Ir para conteúdo

POWERED BY:

Arquivado

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

lautzinho

Upload de várias imagens

Recommended Posts

Olá prezados,

 

Estou fazendo uma área administrativa para inserir produtos em um site. Nunca trabalhei com upload de imagens mas encontrei um código que faz o upload corretamente.

Só gostaria de alterar esse código para que eu possa upar varias imagens ao mesmo tempo. Sendo que elas sejam redimencionadas para tamanhos diferentes. (Esse código já faz o redimencionamento de imagens)

 

Alguem pode me ajudar?

 

Desde já agradeço

 


<?php ini_set("memory_limit", "200000000"); // for large images so that we do not get "Allowed memory exhausted"?>
<?php
// upload the file
if ((isset($_POST["submitted_form"])) && ($_POST["submitted_form"] == "image_upload_form")) {

// file needs to be jpg,gif,bmp,x-png and 4 MB max
if (($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg" || $_FILES["image_upload_box"]["type"] == "image/gif" || $_FILES["image_upload_box"]["type"] == "image/x-png") && ($_FILES["image_upload_box"]["size"] < 4000000))
{


	// some settings
	$max_upload_width = 2592;
	$max_upload_height = 1944;

	// if user chosed properly then scale down the image according to user preferances
	if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){
		$max_upload_width = $_REQUEST['max_width_box'];
	}    
	if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){
		$max_upload_height = $_REQUEST['max_height_box'];
	}	


	// if uploaded image was JPG/JPEG
	if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){	
		$image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
	}		
	// if uploaded image was GIF
	if($_FILES["image_upload_box"]["type"] == "image/gif"){	
		$image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
	}	
	// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)	
	// if uploaded image was BMP
	if($_FILES["image_upload_box"]["type"] == "image/bmp"){	
		$image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
	}			
	// if uploaded image was PNG
	if($_FILES["image_upload_box"]["type"] == "image/x-png"){
		$image_source = imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]);
	}


	$remote_file = "image_files/".$_FILES["image_upload_box"]["name"];
	imagejpeg($image_source,$remote_file,100);
	chmod($remote_file,0755);



	// get width and height of original image
	list($image_width, $image_height) = getimagesize($remote_file);

	if($image_width>$max_upload_width || $image_height >$max_upload_height){
		$proportions = $image_width/$image_height;

		if($image_width>$image_height){
			$new_width = $max_upload_width;
			$new_height = round($max_upload_width/$proportions);
		}		
		else{
			$new_height = $max_upload_height;
			$new_width = round($max_upload_height*$proportions);
		}		


		$new_image = imagecreatetruecolor($new_width , $new_height);
		$image_source = imagecreatefromjpeg($remote_file);

		imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
		imagejpeg($new_image,$remote_file,100);

		imagedestroy($new_image);
	}

	imagedestroy($image_source);


	header("Location: submit.php?upload_message=image uploaded&upload_message_type=success&show_image=".$_FILES["image_upload_box"]["name"]);
	exit;
}
else{
	header("Location: submit.php?upload_message=make sure the file is jpg, gif or png and that is smaller than 4MB&upload_message_type=error");
	exit;
}
}
?>

<!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>Image Upload with resize</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
color: #333333;
font-size: 12px;
}

.upload_message_success {
padding:4px;
background-color:#009900;
border:1px solid #006600;
color:#FFFFFF;
margin-top:10px;
margin-bottom:10px;
}

.upload_message_error {
padding:4px;
background-color:#CE0000;
border:1px solid #990000;
color:#FFFFFF;
margin-top:10px;
margin-bottom:10px;
}

-->
</style></head>

<body>

       <?php if(isset($_REQUEST['upload_message'])){?>
           <div class="upload_message_<?php echo $_REQUEST['upload_message_type'];?>">
           <?php echo htmlentities($_REQUEST['upload_message']);?>
           </div>
	<?php }?>


<form action="submit.php" method="post" enctype="multipart/form-data" name="image_upload_form" id="image_upload_form" style="margin-bottom:0px;">
<label>Image file, maximum 4MB. it can be jpg, gif,  png:</label><br />
         <input name="image_upload_box" type="file" id="image_upload_box" size="40" />
         <input type="submit" name="submit" value="Upload image" />     

    <br />
<br />


     <label>Scale down image? (2592 x 1944 px max):</label>
     <br />
     <input name="max_width_box" type="text" id="max_width_box" value="1024" size="4">
     x      

     <input name="max_height_box" type="text" id="max_height_box" value="768" size="4">
     px.
     <br />
     <br />

<input name="submitted_form" type="hidden" id="submitted_form" value="image_upload_form" />
</form>




<?php if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!=''){?>
<p><img src="image_files/<?php echo $_REQUEST['show_image'];?>" /></p>
<?php }?>



</body>
</html>




Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, eu consegui baseado no que o pessoal me falo aqui ó

 

Clique aqui

 

Opá, to usando o seu código agora. Sabe como faço pra inserir esses nomes no banco de dados?

 


<?php

//Diretório aonde ficará os arquivos
$dir = "pasta/";

//Extensões permitidas
$ext = array("gif","jpg","png");

//Quant. de campos do tipo FILE
$campos = 6;

//Formulário?>
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="foto[]" multiple/>

<input type="submit" name="submit" value=" OK ">
</form>

<?php
//Se for enviado
if (isset($_POST['submit'])) {

//Obtendo info. dos arquivos
$f_name = $_FILES['foto']['name'];
$f_tmp = $_FILES['foto']['tmp_name'];
$f_type = $_FILES['foto']['type'];


//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];

//Verificando se o campo contem arquivo
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

if ($cont==0) {
echo "<b>Arquivo(s) enviados:
</b>";
}
echo $name." - ";

//Movendo arquivo's do upload
$up = move_uploaded_file($f_tmp[$i], $dir.$name);

//Status
if ($up==true):
echo "<i>Enviado!</i>";
$cont++;
else:
echo "<i>Falhou!</i>";
endif;

echo "
";
}

}


}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz assim cara

 

if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
$sql="INSERT INTO `db`.`tabela`(seucampo)VALUES('$name')";
mysql_query($sql) or die("Erro".mysql_error());

 

cara você so tem que arrumar o que esta em italico e sublinhado, espero ter ajudado

 

$sql="INSERT INTO `db`.`tabela`(seucampo)VALUES('$name')";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo campeão... Sou muito leigo em php.

 

O caso é o seguinte, as fotos são todas de um mesmo produto.

 

Minha tabela tem esses campos:

 

nome, categoria, preco, ref, cores, descricao, altura, profundidade, composicao, largura, peso, contem, foto1, foto2, foto3, foto4, id

 

Gostaria que as imagens fossem inseridas nesses campos "foto1", "foto2", "foto3", "foto4".

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, ai some do meu conhecimento,pois pelo codigo que te mandei os nomes ficão salvo em uma unica "variavel", e ela tem que estar dentro de um for pra pegar todas elas... e se você colocar os outros campos dentor do for eles vão se repetir...

 

minha sugestão mais simples é, você cadastra os produtos, isso vai gerar um id, ai você cria uma tabela chamada img_produtos.

 

que faz a ligação id_geral;id_produto;foto

 

so assim que sei fazer, não fica tão profissional mais é uma gambiarra

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, ai some do meu conhecimento,pois pelo codigo que te mandei os nomes ficão salvo em uma unica "variavel", e ela tem que estar dentro de um for pra pegar todas elas... e se você colocar os outros campos dentor do for eles vão se repetir...

 

minha sugestão mais simples é, você cadastra os produtos, isso vai gerar um id, ai você cria uma tabela chamada img_produtos.

 

que faz a ligação id_geral;id_produto;foto

 

so assim que sei fazer, não fica tão profissional mais é uma gambiarra

 

Valeu cara... vou usar a sua lógica.

 

mas o sistema de upload eu achei um bem legal com um plugin jquery

 

http://www.upinside.com.br/video-aulas/multiplo-upload-com-cadastro-em-banco-de-dados-e-alteracao-do-nome-do-arquivo

 

vlwww

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.