Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

skipe

Post bi-dimencional

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.