Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Estou desenvolvendo um sistema de upload multiplo de imagens em PHP + Ajax, aquele esquema de iframe.
O upload das imagens era feito por vários input file (adicionáveis) e colocava tudo num array, passava pro PHP e pronto!
Mas eu vou fazer apenas um input file e vários input hidden, para guardar os dados das imagens.
Minha dúvida é, como fazer para passar os dados do input file para os hidden (adicionáveis)
Segue o código para visualização:
index.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>Untitled Document</title>
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" src="js/upload.js"></script>
<style type="text/css">
#barra{
margin-top: 30px;
}
</style>
</head>
<body>
<form name="upload_form" target="uploader" action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" id="files" name="files[]" /><br />
<input type="button" name="addFile" value="Adicionar arquivo" onclick="window.addFile(this)" />
<input type="submit" name="upload" id="upload" value="Upload arquivos" />
</form>
<iframe name="uploader" style="display: none;" width="0" height="0"></iframe>
<div id="response"></div>
<div id="tudo">
<div id="barra"></div>
</div>
</body>
</html>
upload.js
function addFile(addFileButton){
var form = document['upload_form'];
var f = document.createElement("input");
f.type = "file";
f.name = "files[]";
var rb = document.createElement("input");
rb.type="button";
rb.value="Remover arquivo";
rb.onclick = function(){
form.removeChild(this.previousSibling);
form.removeChild(this.nextSibling);
form.removeChild(this);
}
form.insertBefore(f, addFileButton);
form.insertBefore(rb, addFileButton);
form.insertBefore(document.createElement("br"), addFileButton);
}
upload.php
<div id="temp">
<?php
if(isset($_POST['upload'])):
for($i=count($_FILES['files']['tmp_name']) - 1; $i>=0; $i--):
if($_FILES['files']['error'][$i]==0 && $_FILES['files']['type'][$i]=='image/jpeg'):
if($img = getimagesize($_FILES['files']['tmp_name'][$i])):
$newdir = "arquivos/".time().$_FILES['files']['name'][$i];
move_uploaded_file($_FILES['files']['tmp_name'][$i], $newdir);
print_r($_FILES);
endif;
endif;
endfor;
endif;
?>
</div>
<!-- DEBUG -->
<script>
var main = window.parent.document;
var resp = document.getElementById("temp").innerHTML;
main.getElementById("response").innerHTML = "<pre>"+resp;
</script>
Eu sei que existem vários plugins prontos, vide uploadify, swfupload, upload magic entre outros, mas não gostei de nenhum. Programando, eu posso modificar para a necessidade de cada cliente e eu aprendo mais! :joia:
Carregando comentários...