Ir para conteúdo

Arquivado

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

Wesley Souza_55848

usando empty com valor de campo file dinamico

Recommended Posts

Olá pessoal, não sei como ficaria isso, mas tenho 4 inputs tipo file recebendo o valor dinamico e eu preciso que se 3 imagens nao for selecionada ele não envie o form eu tentei assim mas nao deu :/

if(empty($img['img']) < 3):
 echo 'Envie pelo menos 3 imagens';
else:
 ...
endif;

Compartilhar este post


Link para o post
Compartilhar em outros sites
empty retorna false ou true;

 

ele na verdade verifica se a variavel/array está vazia!

 

ou seja, vc terá de fazer um loop com foreach na input, verificar quantas estão vazias como exemplo rápido e um pouco mal feito pra vc se basear!!

 

$count = 0;

foreach ($_FILE as $key=>$valor){

if (empty($_FILE[$key]['name']){

$count += 1;

}else{

//seu codigo

}

}

 

if ($count <= 3){

$error = "Faça upload de 3 imagens";

}

if (!isset($error)){

//finaliza seu codigo

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara se você quiser verificar se tem 3 ou mais imagens é simples.

 

if(count($_POST['img']) >= 3){
//Se tiver 3 ou mais imagens selecionadas executa o bloco de código que estiver dentro do if
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

empty retorna false ou true;

 

ele na verdade verifica se a variavel/array está vazia!

 

ou seja, vc terá de fazer um loop com foreach na input, verificar quantas estão vazias como exemplo rápido e um pouco mal feito pra vc se basear!!

 

$count = 0;

foreach ($_FILE as $key=>$valor){

if (empty($_FILE[$key]['name']){

$count += 1;

}else{

//seu codigo

}

}

 

if ($count <= 3){

$error = "Faça upload de 3 imagens";

}

if (!isset($error)){

//finaliza seu codigo

}

 

Eh Della, axo que deixar campo como array não vai dar certo não, vai ficar mto complicado, axo que é melhor fazer um por um msmo kkkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade quando você trabalha com upload multiplos desta formas os dados ja em formato de array.

 

axo que é melhor fazer um por um msmo

 

Não te aconselho a trabalhar desta forma, imagine se você fosse tratar o upload de 20 arquivos ira ser muito demorado.

E outra se no futuro você desejar aumentar este numero de upload é mais o tratamento como array.

 

Exemplo:

Você adicionou + 10 campos para upload ficando com um total de 14 e quer validar se tem 8 arquivos no minimo para ser feito o de upload seguindo o modelo que eu te passei é bem rapido de ser alterado.

 

Como esta no modelo que eu passei:

if(count($_POST['img']) >= 3){
    //Se tiver 3 ou mais imagens selecionadas executa o bloco de código que estiver dentro do if
}

E como ficaria:

 

if(count($_POST['img']) >= 8){
    //Se tiver 8 ou mais imagens selecionadas executa o bloco de código que estiver dentro do if
}

É simples e rapido mudei somente o numero 3 e coloquei 8 no lugar, se fosse fazer um a um ira gastar um bom tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade quando você trabalha com upload multiplos desta formas os dados ja em formato de array.

 

 

Não te aconselho a trabalhar desta forma, imagine se você fosse tratar o upload de 20 arquivos ira ser muito demorado.

E outra se no futuro você desejar aumentar este numero de upload é mais o tratamento como array.

 

Exemplo:

Você adicionou + 10 campos para upload ficando com um total de 14 e quer validar se tem 8 arquivos no minimo para ser feito o de upload seguindo o modelo que eu te passei é bem rapido de ser alterado.

 

Como esta no modelo que eu passei:

if(count($_POST['img']) >= 3){
    //Se tiver 3 ou mais imagens selecionadas executa o bloco de código que estiver dentro do if
}

E como ficaria:

 

if(count($_POST['img']) >= 8){
    //Se tiver 8 ou mais imagens selecionadas executa o bloco de código que estiver dentro do if
}

É simples e rapido mudei somente o numero 3 e coloquei 8 no lugar, se fosse fazer um a um ira gastar um bom tempo.

Não dá com Post pq é FILES :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkk viajei falha minha, use foreach para percorer o array com as imagens para upload.

 

Exemplo:

if(isset($_FILES['img'])){
	$cont = 0;//instancias a varivel que conta o total de upload
	foreach($_FILES['img']['name'] as $item){
		if(!empty($item)){
			$cont++;//somar mais para cada arquivo
		}
	}

	if($cont >= 3){
		//Faz o upload dos arquivos
	}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

kkk viajei falha minha, use foreach para percorer o array com as imagens para upload.

 

Exemplo:

if(isset($_FILES['img'])){
	$cont = 0;//instancias a varivel que conta o total de upload
	foreach($_FILES['img']['name'] as $item){
		if(!empty($item)){
			$cont++;//somar mais para cada arquivo
		}
	}

	if($cont >= 3){
		//Faz o upload dos arquivos
	}

}

 

Heh de boa :D, é isso mesmo, resolvido :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acbou que ficou da forma que falei kkk!

Sim, malz não tinha visto.

Só uma coisa Della, to usando a função getimagesize, dexei o campo dinamico mas como tem 4 campos se eu seleciono só um ele da erro exibindo 3x esse erro:

 

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in

 

Pq eu usei o count($img["name"]); pra contar os campos existentes, não teria um jeito de contar só os que foram selecionados? dai ficou assim:

for($i = 0; $i < $count; $++):
endfor;

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.