Attach File igual ao Gmail (Anexar arquivos igual ao Gmail)
O código abaixo simula a função de anexar arquivos do gmail.
<link href="../css.styles.css" rel="stylesheet" type="text/css"><style> .EscondeDiv{display:none}</style> <script type="text/javascript"> var form_count = 0; var form_count2 = 0; function AddField() { var new_spanmsg = document.createElement('span'); new_spanmsg.setAttribute('id','Up' + form_count); document.getElementById('content').appendChild(new_spanmsg); var new_attachment = document.createElement('input'); new_attachment.setAttribute('id', 'child_attachment_' + form_count); new_attachment.setAttribute('type', 'file'); new_attachment.setAttribute('name', 'Arquivo['+form_count+']'); document.getElementById('Up'+form_count).appendChild(new_attachment); document.getElementById('child_attachment_' + form_count).className="EscondeDiv"; document.getElementById('child_attachment_' + form_count).click(); var new_text = document.createElement('span'); new_text.setAttribute('id','child_attachment_text_' + form_count); new_text.innerHTML = ' <a class=Links href="javascript:DelField(' + form_count + ');">remover</a><br />'; var new_spantext = document.createElement('span'); new_spantext.setAttribute('id','Link' + form_count); document.getElementById('content').appendChild(new_spantext); document.getElementById('content').appendChild(new_text); if(document.getElementById('child_attachment_' + form_count).value!='') { document.getElementById('Link' + form_count).innerHTML = "<b>"+document.getElementById('child_attachment_' + form_count).value+"</b>";}else{DelField(form_count);} form_count++; form_count2++; document.getElementById('more').innerHTML = 'Procurar outro arquivo'; } function DelField(remove_form_num) { document.getElementById('content').removeChild(document.getElementById('Up' + remove_form_num)); document.getElementById('content').removeChild(document.getElementById('Link' + remove_form_num)); document.getElementById('content').removeChild(document.getElementById('child_attachment_text_' + remove_form_num)); form_count2--; if (form_count2 == 0) { document.getElementById('more').innerHTML = 'Procurar arquivo'; } } </script></head> <form action="" method="get" enctype="multipart/form-data" name="a" target=""> <span id="content"></span> </form> <p><a id="more" class="Links" onclick="AddField();">Procurar arquivo</a></p><p><a href="attach%20likes%20gmail.php">Iniciar</a></p><p> <input type="button" onClick="document.a.submit()" name="submit" value="Upload"></p><?print_r($_FILES); // Esse array retornaria os detalhes dos arquivosprint_r($_GET); // Esse array retornaria todos os valores passados via GET.?>
Só que tem um problema: a SPAN "content" é onde ficará as INPUT FILE escondidas que enviarão os arquivos. Eu a coloquei dentro da tag FORM no html da página. Mas não tá dando certo, ela não tá enviando os arquivos para o script de upload, no exemplo acima, eu envio via GET e recebo no outro lado com PHP pra testar de veio algum valor, e não chegando nada. Isso leva a crer que, mesmo o DIV content estar dentro de FORM, mas na hora do JS montar os dados, ele não inclui tudo isso dentro do mesmo. Analisem, e tirem as suas conclusões, senhores.
Discussão (1)
Carregando comentários...