Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas meus amigos, eu estou a usar um sistema de envio de fotos para o servidor, o problema é que envio uma de cada vez, e queria enviar daquele genero que no upload posso selecionar todas as fotos que quero e ele regista e envia tudo de uma só ves..
actualmente uso o seguinte
Página que envia e regista o produto, foto..
<?php
session_start();
include('logout.php');
if($_SESSION['login']!=1) {
header('Location: index.php');
} else {
include('connect_DB_open.php');
$result = mysql_query("SELECT * FROM admin_users WHERE id='".$_SESSION['id']."'");
$row = mysql_fetch_array($result);
if($_GET['action']=='add_product') {
$id_cat=$_POST['combobox'];
if($id_cat!='') {
mysql_query("INSERT INTO produtos (subcategoria) VALUES ('".$id_cat."')") or die (mysql_error());
include('upload_fotos.php');
}
}
if($_GET['action']=='remove') {
$id=$_GET['id'];
$result = mysql_query("SELECT * FROM produtos WHERE id='".$id."'");
$row = mysql_fetch_array($result);
if($row['foto1']!='') {
unlink("imagens_produtos/".$row['foto1']."");
}
mysql_query("DELETE FROM produtos WHERE id=$id") or die (mysql_error());
}
}
?>
<!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>Administração </title>
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<!-- TinyMCE -->
<script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
// Skin options
skin : "o2k7",
skin_variant : "silver",
// Example content CSS (should be your site CSS)
content_css : "css/example.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "js/template_list.js",
external_link_list_url : "js/link_list.js",
external_image_list_url : "js/image_list.js",
media_external_list_url : "js/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
</script>
<style type="text/css">
<!--
.style1 {color: #BA4C32}
-->
</style>
</head>
<body>
<!-- Header -->
<div id="header">
<div class="shell">
<!-- Logo + Top Nav -->
<div id="top">
<h1><a href="#">Administração</a></h1>
<div id="top-navigation"> Bem Vindo <a href="#"><strong><?php echo $row['username']; ?></strong></a> <span>|</span> <a href="../index.php">Ver o site</a><span>|</span> <a href="?action=logout">Log out</a> </div>
</div>
<!-- End Logo + Top Nav -->
<!-- Main Nav -->
<div id="navigation">
<ul>
<li><a href="categorias.php"><span>Categorias </span></a></li>
<li><a href="subcat.php" ><span>Marcas</span></a></li>
<li><a href="produtos.php"><span>Fotos</span></a></li>
<li><a href="../admin_loja/categorias.php"><span>Admin loja</span></a></li>
</ul>
</div>
<!-- End Main Nav -->
</div>
</div><!-- Container -->
<div id="container">
<div class="shell">
<!-- Small Nav --><!-- End Small Nav -->
<!-- Message OK --><!-- End Message OK -->
<!-- Message Error -->
<!-- End Message Error --><br />
<!-- Main -->
<div id="main">
<div class="cl"> </div>
<!-- Content -->
<div id="content">
<!-- Box -->
<div class="box">
<!-- Box Head -->
<div class="box-head">
<h2 class="left">Produtos registados</h2>
</div>
<!-- End Box Head -->
<!-- Table -->
<div class="table">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="237" height="31"><div align="center">Foto</div></th>
<th width="189" class="ac"><div align="center">Categoria</div></th>
<th width="167" class="ac"><div align="center">Subcategoria</div></th>
<th width="155" class="ac"><div align="center">Painel Controlo</div></th>
</tr>
<tr>
<?php
$result = mysql_query("SELECT * FROM produtos ORDER BY nome ASC") or die (mysql_error());
$cont=0;
while($row2 = mysql_fetch_array($result))
{
$result2 = mysql_query("SELECT * FROM sub_categorias WHERE id='".$row2['subcategoria']."'") or die (mysql_error());
$row3 = mysql_fetch_array($result2);
$result2 = mysql_query("SELECT * FROM categorias WHERE id='".$row3['categoria_id']."'") or die (mysql_error());
$row4 = mysql_fetch_array($result2);
?>
<td><h3 align="left" class="style1"><?php
if($row2['foto1']!='') {
?><a class="toc"><img src='imagens_produtos/<?php echo $row2['foto1']; ?>' width="200" /></a><br />
<br />
<?php
}
?></h3></td>
<td><div align="left"><?php echo $row4['nome']; ?></div></td>
<td><div align="left"><?php echo $row3['nome']; ?></div></td>
<td><div align="left"><a href="?action=remove&id=<?php echo $row2['id'];?>" class="ico del">Remover</a><a href="edit-produtos.php?id=<?php echo $row2['id']; ?>" class="ico edit">Editar</a><a href="info-produtos.php?action=view&id=<?php echo $row2['id']; ?>" class="ico info">info</a></div></td>
</tr>
<?php
$cont++;
}
if($cont==0) {
?>
<tr>
<td colspan="6"> Sem produtos!</td>
</tr>
<?php
}
?><strong></strong>
</table>
<p>
<!-- Pagging -->
</p>
<p> </p>
</div>
<!-- Table -->
</div>
<!-- End Box -->
<!-- Box -->
<div class="box">
<!-- Box Head -->
<div class="box-head">
<h2>Adicionar novo produto</h2><a name="addpro" id="addcat"></a> </div>
<!-- End Box Head -->
<form id="form1" name="form1" method="post" action="?action=add_product" enctype='multipart/form-data'>
<table width="83%" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#0000FF" id="addsubcat">
<tr>
<td width="24%" height="65"><table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="30"><strong>Adicionar a subcategoria </strong></td>
</tr>
<tr>
<td><select id='combobox' class="field size3" name='combobox'>
<?php
$cont=0;
$result = mysql_query("SELECT * FROM categorias ORDER BY nome ASC");
while($row3 = mysql_fetch_array($result))
{
?>
<option disabled='disabled'><?php echo $row3['nome']; ?></option>
<?php
$result2 = mysql_query("SELECT * FROM sub_categorias WHERE categoria_id='".$row3['id']."' ORDER BY nome ASC");
while($row4 = mysql_fetch_array($result2))
{
?>
<option <?php if($cont==0) {?>selected=selected <?php } ?> value=<?php echo $row4['id']; ?> > - <?php echo $row4['nome']; ?></option>
<?php
$cont++;
}
}
?>
</select></td>
</tr>
</table></td>
</tr>
</table>
<p>
<!-- End Form -->
</p>
<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="250" height="33"><strong>Fotos</strong></td>
</tr>
<tr>
<td><p class="style1">Foto 1:
<input type="file" class="button" name="image1">
</p>
<p class="style1"> </p>
</td>
</tr>
</table>
<p> </p>
<p>
<!-- Form Buttons -->
</p>
<div class="buttons">
<input type="submit" class="button" value="Adicionar" />
</div>
<!-- End Form Buttons -->
</form> </div>
<!-- End Box -->
</div>
<!-- End Content -->
<!-- Sidebar -->
<div id="sidebar">
<!-- Box -->
<div class="box">
<!-- Box Head -->
<div class="box-head">
<h2>Produtos</h2>
</div>
<!-- End Box Head-->
<div class="box-content">
<a href="#addpro" class="add-button"><span>Adicionar produto</span></a>
<div class="cl">
<!-- Sort -->
</div>
<!-- End Sort -->
</div>
</div>
<!-- End Box -->
</div>
<!-- End Sidebar -->
<div class="cl"> </div>
</div>
<!-- Main -->
</div>
</div>
<!-- End Container -->
</body>
</html>
o include upload-fotos é o seguinte
<?php
$foto1 = $_FILES['image1'];
// Se a foto estiver sido selecionada
if (!empty($foto1["name"])) {
$id=0;
$result2 = mysql_query("SELECT * FROM produtos ORDER BY id ASC");
while($row5 = mysql_fetch_array($result2))
{
$id=$row5['id'];
}
// Verifica se o arquivo é uma imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto1["type"])){
$error[1] = "Imagem inválida";
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
//if($foto["size"] > $tamanho) {
// $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
//}
// Se não houver nenhum erro
if (count($error) == 0) {
// Pega extensão da imagem
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto1["name"], $ext);
// Gera um nome único para a imagem
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
// Caminho de onde ficará a imagem
$caminho_imagem = "imagens_produtos/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
$files = move_uploaded_file($foto1["tmp_name"], $caminho_imagem);
mysql_query("UPDATE produtos SET foto1='".$nome_imagem."' WHERE id='".$id."'") or die (mysql_error());
// Se os dados forem inseridos com sucesso
}
// Se houver mensagens de erro, exibe-as
if (count($error) != 0) {
foreach ($error as $erro) {
echo $erro ."<br />";
}
}
}
?>
o que devo alterar para poder enviar várias fotos ao mesmo tempo, criar cada uma é como se fosse um produto diferente para a subcategoria... por ex: para adicionar fotos a marca de carro BMW tenho de adicionar 1 por 1 e queria poder selecionar todas as que quiser para enviar de uma só ves e que me registase cada fotos por id's diferente para evitar conflitos com a actual configuração de listagens e etc..
Obrigado
Carregando comentários...