johnhey 0 Denunciar post Postado Março 7, 2016 Boa noite, Fiz uma opção de upload de imagens para o meu site, conforme o link abaixo. https://youtu.be/0BzYNHQx35g esta a funcionar na perfeição. Mas gostaria que o nome das imagens fossem aleatórios, exemplo: foto01, foto02, foto03..... Segue abaixo o código a funcionar. <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="fotos[]" multiple> <input type="submit" name="upload" value="Upload"> </form> </div> <?php if(isset($_POST['upload'])){ //Informações das imagens $file = $_FILES['fotos']; $numfotos = count(array_filter($file['name'])); //Informações da pasta $pasta = 'imagens/upload'; //Requisitos $permite = array('image/jpeg', 'image/png'); $maxSize = 1024 * 1024 * 5; //Mensagem $msg = array(); $erro = array( 1=> 'O arquivo no upload é mairo do que o limite permitido em upload máximo', 2=>'O arquivo ultrapassa o limite de tamanho máximo por imagem', 3=> 'O upload do arquivo foi feito parcialmente', 4=> 'Não foi feito o upload do arquivo' ); if ($numfotos <= 0) echo 'Selecione uma ou mais imagem!'; else{ for ($i = 0; $i < $numfotos; $i++){ $name = $file['name'][$i]; $type = $file['type'][$i]; $size = $file['size'][$i]; $error = $file['error'][$i]; $tmp = $file['tmp_name'][$i]; $extensao = @end(explode('.', $name)); $novonome = rand().".$extensao"; if($error !=0) $msg[] = "<b> $name: </b>".$errorMsg[$error]; else if (!in_array($type, $permite)) $msg[] = "<b> $name: </b> Erro imagem não suportada!"; else if($size > $maxSize) $msg[] = "<b> $name:</b> Erro imagem ultrapassa o limite de 5 MB"; else{ if(move_uploaded_file($tmp, $pasta."/".$novonome)) $msg[] = "<b>$name :</b> Upload Realizado com Sucesso!"; else $msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro..."; } foreach($msg as $pop) echo $pop.'<br>'; } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 7, 2016 Aleatório ou sequencial? Aleatórios eles já são, pois você usa rand(): $novonome = rand().".$extensao"; (esse aleatório pode se repetir. Sugiro usar uniqid() para evitar colisão) Se quiser sequencial, precisará pegar o nome do arquivo mais recente e extrair a parte numérica. Depois é só somar uma unidade e terá o novo nome. Compartilhar este post Link para o post Compartilhar em outros sites
johnhey 0 Denunciar post Postado Março 7, 2016 Boa noite Beraldo, eu não sabia muito bem como expressar. Mas o que preciso é sequencial, como mencionei no exemplo. Gostaria que ficasse: foto01 foto02 foto03 e assim por diante Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 7, 2016 Então faça o que citei aantes: Se quiser sequencial, precisará pegar o nome do arquivo mais recente e extrair a parte numérica. Depois é só somar uma unidade e terá o novo nome. Veja as Funções de filesystem, em especial scandir() e glob() Compartilhar este post Link para o post Compartilhar em outros sites
johnhey 0 Denunciar post Postado Março 31, 2016 Consegui resolver da seguinte forma, era bem simples, mas às vezes não conseguimos ver. $extensao = @end(explode('.', $name)); $novonome = foto.sprintf('%02s',$contador) $nomecompleto = $novonome.".$extensao"; $contador++; Compartilhar este post Link para o post Compartilhar em outros sites