Ir para conteúdo

Arquivado

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

matheusmarson

problema com preg_match_all para upload imagem

Recommended Posts

Olá a todos

Estou com um problema muito estranho aqui.

Tenho um script para upload de imagens via ajax e jquery.

Utilizo está função a bastante tempo e sempre funcionou bem.

Ocorre que em um projeto que implementei o script ele começou a dar problema

Algumas imagens ele faz o upload e e outras (a maioria) não

As imagens tem tamanhos diferentes e independente se é muito pesada, grade ou pequena ele hora faz o upload e hora não.

Portanto não é problema com tamanho das imagens

o aquivo que deveria faze o upload é o seguinte:

<?php
	session_start();
	
	if (isset($_POST['img'])){
		if (!preg_match_all('/^data:image\/(.*);base64,(.*)$/m', $_POST['img'], $match)) die ('ERRO AO OBTER IMAGEM');
		$img_name = md5(uniqid(rand(), true)) . '.' .$match[1][0];
		$img_source = base64_decode($match[2][0]);
		$destino = '../fotos/perfil/' . $img_name;
		
		if (file_put_contents($destino, $img_source) === FALSE) die ('ERRO AO SALVAR IMAGEM');
		print "NOVA IMAGEM CARREGADA COM SUCESSO!!! | $img_name";
		
		$_SESSION["foto_perfil_user"] = $img_name;
	}
?>

Alguem teve problema parecido e sabe me dizer como resolver?

Localmente aqui em minha máquina está perfeito, faz o upload de qualquer imagem

A pasta de destino da imagem já está com a permissão de escrita também, tudo certo.

Oque pode estar havendo?

Seria algo com a função no host?

obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por AlexandreHenrique
      Olá pessoal. preciso de uma ajuda com o meu projeto de upload.
      O projeto de upload roda no IIS + Php;
      Tenho um script que ta enviando  o arquivo para o diretório correto.
      O problema é que ao tentar acessar esse arquivo via URL, o anexo não abre  e exibe a mensagem abaixo.
       

      Notei que o arquivo ao cair no DIR, ele entra sem permissões (vi em propriedades), se eu editar o mesmo alterando as permissões, ele carrega pela url do meu site.
      Quero que o arquivo enviado pelo script caia no DIR correta com as devidas permissões pra eu poder ler no navegador via URL;
       
      Já tentei resolver de toda forma mas nao tive sucesso;.
      No Apache isso é mais simples, mas no IIS ta complicado;
       
       
       
      Alguem pode me dá uma dica?
    • Por Caio Vargas
      Fala pessoa tudo tranquilo ?
      estou com um problema eu fiz um sistema de upload onde tem a marca dagua  o problema e que quando o cadastro da capa e pequena a imagem da marca dagua fica grande
      e qauando a capa e grande  a imagem da marca dagua fica pequena alguem poderia me ajudar 
    • Por mateus.andriollo
      Olá,
      Gostaria de saber se alguem pode me ajudar.
      Meu PHP esta na pasta public_html em um CPanel, quero saber se é possível armazenar em pasta fora da pasta  pública, por segurança mesmo...
      Faço isso em ASP, ai chamo a imagem por um fso, funciona mas queria saber se tem como no PHP.
    • Por Motta
      Prezados ,
      Onde tenho um Banco de Imagens de ícones Público disponível para dowmload.
       
      Coisa básica
    • Por DeniseAlencar
      Boar tarde pessoal estou fazendo um teste com upload de imagens gravando no banco de dados porem quando cadastro uma imagem com o nome "foto.jpg" e depois cadastro a mesma imagem com o mesmo nome, no banco de dados aparece dois registros com nomes iguais mas gostaria que os nomes fossem diferentes.
       
      E na pasta arquivos aparece uma unica imagem gostaria que quando cadastrasse fotos iguais o nome mudasse tipo foto.jpg , foto2.jpg  etc (isso automaticamente) vou postar o codigo .
      <?php $diretorio = "arquivos/"; if(!is_dir($diretorio)){ echo "Pasta $diretorio não existe";}else{ $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE; for ($controle = 0; $controle < count($arquivo['name']); $controle++){ $destino = $diretorio."/".$arquivo['name'][$controle]; $nome_foto = $arquivo['name'][$controle]; if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){ $sql="INSERT INTO galeria (arquivo) VALUES ('$nome_foto')"; $qry = mysqli_query($conexao,$sql); echo "<head><meta HTTP-EQUIV='refresh' CONTENT='0;URL=index.php'></head>"; }else{ echo "Erro ao realizar upload"; } } } ?>  
×

Informação importante

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