Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
} 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">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>cara, eu consegui baseado no que o pessoal me falo aqui ó
>
cara, eu consegui baseado no que o pessoal me falo 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//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++;echo "<i>Falhou!</i>";
endif;
echo "
";
}
}
}
?>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')";
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".
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
>
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
vlwww
So completando, no seu caso, o mais facil seria você colocar 4 campos do tipo file, e fazer o upload
^^
cara, eu consegui baseado no que o pessoal me falo aqui ó
Clique aqui