skipe 0 Denunciar post Postado Maio 5, 2006 Olá galera,estou com uma dúvida cruel.estou fazendo um script para fazer o upload de vários arquivos ao mesmo tempo.Para isto estou enviando eles para uma pasta temporária e depois desejo enviá-los para a pasta onde deve ficar.Para que não tenha problema com repetição de nome de arquivos, estou gerando os nomes.Então assim:Criei um campo hidden onde coloco o nome dos arquivos que já foram upados.Este campo é que passa a lista de arquivos novamente para a página.Só tem um detalhe... gostaria de passar o nome antigo e o atual (gerado).O campo hidden que tenho que gerar ficaria algo assim:echo "<input name='ANEXOS[]' type='hidden' value='$linha' />";???onde $linha é um array com os valores de destino ([dest]) e origem ([orig]) ???Tentei algo parecido mas não consegui.Alguém pode me dar uma força? Compartilhar este post Link para o post Compartilhar em outros sites
Insites 0 Denunciar post Postado Maio 5, 2006 Você teria o seguinte: for ($i=0; $i<count($linha); $i++)echo "<input name='ANEXOS[]' type='hidden' value='$linha[$i]' />"; assim ele vai fazer um loop com todos os resultados do array $linha e escrever um input para cada posição do array. você poderia utilizar sessão para passagem de parametros, fica mais facil e confiável. Compartilhar este post Link para o post Compartilhar em outros sites
skipe 0 Denunciar post Postado Maio 5, 2006 Valeu Insites, max naum é bem isso que preciso. Na verdade é uma aplicação muito simples pra se usar sessão... na verdade o q eu penso é o seguinte: Cada vez que clico em ANEXAR ele mandará um novo arquivo para anexar; então o script faz o procedimento para anexar (move_uploaded_file()...) e traz consigo os nomes; vou passar abaixo o script q fiz com a passagem só do nome original pra ver se dá pra entender melhor... <?$erro = "";if( isset($_POST['boStatus']) ) { // se algum botão foi precionado (se houve ação na página) switch($_POST['boStatus']){ case "Anexar": $ANEXOS = $_POST['ANEXOS'] != "" ? $_POST['ANEXOS'] : ""; //print_r($_POST['ANEXOS']); //die("veio anexo"); // rotina que envia o arquivo para o servidor // para que possamos enviar vários arquivos iremos enviar primeiramente // o arquivo para uma pasta temporária. Depois de ter anexado todos é que // iremos por os arquivos na pasta definitiva if( isset($_FILES["fmarquivo"]) && $_FILES["fmarquivo"] != "" ){ $arq_temp = $_FILES["fmarquivo"]["tmp_name"]; $nome_arq_orig = $_FILES["fmarquivo"]["name"]; $nome_arq_na_pasta = date("Y-m-d H:i:s"); $arq_tam = $_FILES["fmarquivo"]["size"]; $arq_tipo = $_FILES["fmarquivo"]["type"]; $destino_arq = "temp/".$nome_arq_orig; if($arq_tam <= 5120000048){ //aqui to limitando o tamnho a 500kb... if(move_uploaded_file($arq_temp, $destino_arq)){ $erro .= "<br>Arquivo Anexado"; $ANEXOS[] = $nome_arq_orig; } else { $erro .= "O arquivo não pode ser anexado"; } } else { $erro .= "O tamanho do arquivo excedeu 500 kb"; } }// fim da rotina que envia o arquivo para o servidor break; // fim do anexar case "Enviar" : $ANEXOS = isset($_POST['ANEXOS']) ? $_POST['ANEXOS'] : ""; if( $ANEXOS != "" ){ foreach( $ANEXOS as $linha ){ if( ! @rename( "temp/$linha", "anexos/$linha" ) ){ if( $erro == "" ) $erro .= "Não foi possível enviar o(s) arquivo(s):"; $erro .= "<br /> $linha "; } } $ANEXOS = ""; } }}?><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title></head><body><form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> <td> </td> <td><? if( $erro ) echo $erro; ?> </td> </tr> <tr> <td width="145">Arquivos Anexados: </td> <td width="10"> </td> <td width="445"> <? if( $ANEXOS != "" ){ foreach( $ANEXOS as $linha ){ echo "<input name='ANEXOS[]' type='hidden' value='$linha' />"; echo "$linha <input type='image' name='imageField' src='delete.gif' alt='excluir' value='$linha' width='10' height='10' /> <br />"; } } ?> </td> </tr> <tr> <td>Anexar novo arquivo:</td> <td> </td> <td><input name="fmarquivo" type="file" id="fmarquivo" /> <input name="boStatus" type="submit" id="boStatus" value="Anexar" /></td> </tr> <tr> <td align="right"><label for="Submit"></label> <input type="submit" name="boStatus" value="Enviar" id="boStatus" /></td> <td> </td> <td> </td> </tr> </table></form><br /></body></html> Só que ao invés de mandar somente um nome mandar dois pelo campo ANEXOS... tipow : <input name='ANEXOS[][]' type='hidden' value='$linha' /> onde $linha é um array ou <input name='ANEXOS[orig][]' type='hidden' value='$linha[orig]' /> <input name='ANEXOS[dest][]' type='hidden' value='$linha[dest]' /> ou algo parecido... Valew pela atenção... Compartilhar este post Link para o post Compartilhar em outros sites
Insites 0 Denunciar post Postado Maio 5, 2006 porque você não utiliza duas variaveis para fazer isso???<input name='ORIGEM[]' type='hidden' value='$linha[orig]' /><input name='DESTINO[]' type='hidden' value='$linha[dest]' />Você está tentando utilizar uma matriz para passar dois parametros ao mesmo tempo com uma só variavel, ANEXOS[][], sei que isso funciona com sessão, mas com formulário de post ainda não testei. Compartilhar este post Link para o post Compartilhar em outros sites