Jump to content
gheeenrique

Script para upload de imagem via mobile

Recommended Posts

Olá pessoal,

Estou desenvolvendo um sistema de upload de imagem, entretanto será utilizado via mobile, o que ocorre é que consigo fazer upload no computador, mas no mobile (Somente android) o upload e dado como sucesso mas a imagem, salva o log no banco de dados mas não é enviada a pasta /upload, já no iOS ou Computador é enviado normalmente para a pasta.

Alguém sabe como resolver para que o upload da imagem seja feito também via android?

 

Segue meu código completo do arquivo de anexo:

<?php
if (!isset($_SESSION)) {
	# code...
	session_start();
}

require_once("conexao.php");
$id = $_POST["id"];
$responsavel = $_POST["responsavel"];

$diretorio = "upload/";
$_UP['extensoes'] = array('jpg', 'jpeg', 'png', 'gif', 'xlsx', 'pdf', 'doc');

$arquivo=$_FILES["arquivo"];

if (isset($_FILES['arquivo']['name'])) {
$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
		$_SESSION["tela"] = "chamados.php";
        $_SESSION["erro"] = "Por favor, envie arquivos com as seguintes extensões: jpg, png, doc, xls ou xlsx.";
		header('Location: demandas_ver.php?id='. $id);
		exit;
}

$temp = explode(".", $_FILES["arquivo"]["name"]);
$newfilename = round(microtime(true)) . '.' . end($temp);
move_uploaded_file($_FILES["arquivo"]["tmp_name"], "upload/" . $newfilename);

     $cadastrar = mysql_query("INSERT INTO Demanda_Log (id_demanda, mensagem, data, responsavel, tipo, url)
		VALUES('$id', '$mensagem', NOW(), '$responsavel', '3', '$newfilename')", $db);
	if ($cadastrar) {
		//SALVA LOGS
$mensagem = "Adicionou um anexo a demanda ID: $id";
salvaLog($mensagem);
//FIM SALVA LOGS
		$_SESSION["sucesso"] = "demandas_ver.php?id=". $id;
        $_SESSION["sucesso"] = "Mensagem adicionada com sucesso!";
		header('Location: demandas_ver.php?id='. $id);
	} else {
		$_SESSION["erro"] = "demandas_ver.php?id=". $id;
        $_SESSION["erro"] = "Houve um erro ao adicionar a mensagem.";
		header('Location: demandas_ver.php?id='. $id);
	}
} else {
		$_SESSION["erro"] = "demandas_ver.php?id=". $id;
        $_SESSION["erro"] = "Houve um erro ao adicionar a mensagem. ERRO: ARQ01";
		header('Location: demandas_ver.php?id='. $id);
}

?>

 

Share this post


Link to post
Share on other sites

Já tentou usar BOOTSTRAP?

Bom espero que seja isso que tu precisa

Vou posta aqui mais ai tu muda ao teu gosto mais seria isso aqui

Eu uso assim e tenho sucesso em qualquer mobile e computadores

 

<?php
// Conexão com o banco de dados
$conn = @mysql_connect("localhost", "usuario", "senha") or die ("Problemas na conexão.");
$db = @mysql_select_db("banco", $conn) or die ("Problemas na conexão");
 
// Se o usuário clicou no botão cadastrar efetua as ações
if (isset($_POST['cadastrar'])) {
	
	// Recupera os dados dos campos
	$mensagem = $_POST['mensagem'];
	$data = $_POST['data'];
    $tipo = $_POST['tipo'];
    $url = $_POST['url'];
	$arquivo = $_FILES["arquivo"];
	
	// Se a foto estiver sido selecionada
	if (!empty($arquivo["name"])) {
		
		// Largura máxima em pixels
		$largura = 150;
		// Altura máxima em pixels
		$altura = 180;
		// Tamanho máximo do arquivo em bytes
		$tamanho = 1000;
 
		$error = array();
 
    	// Verifica se o arquivo é uma imagem
    	if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $arquivo["type"])){
     	   $error[1] = "Isso não é uma imagem.";
   	 	} 
	
		// Pega as dimensões da imagem
		$dimensoes = getimagesize($foto["tmp_name"]);
	
		// Verifica se a largura da imagem é maior que a largura permitida
		if($dimensoes[0] > $largura) {
			$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
		}
 
		// Verifica se a altura da imagem é maior que a altura permitida
		if($dimensoes[1] > $altura) {
			$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
		}
		
		// Verifica se o tamanho da imagem é maior que o tamanho permitido
		if($arquivo["size"] > $tamanho) {
   		 	$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
		}
 
		// Se não houver nenhum erro
		if (count($error) == 0) {
		
			// Pega extensão da imagem
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
 
        	// Gera um nome único para a imagem
        	$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
 
        	// Caminho de onde ficará a imagem
        	$caminho_imagem = "upload/" . $nome_imagem;
 
			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($arquivo["tmp_name"], $caminho_imagem);
		
			// Insere os dados no banco
			$sql = mysql_query("INSERT INTO Demanda_Log VALUES ('', '".$mensagem."', '".$data."', '".$responsavel."', '".$tipo."', '".$url."',  '".$nome_imagem."')");
		
			// Se os dados forem inseridos com sucesso
			if ($sql){
				echo "Você foi cadastrado com sucesso.";
			}
		}
	
		// Se houver mensagens de erro, exibe-as
		if (count($error) != 0) {
			foreach ($error as $erro) {
				echo $erro . "<br />";
			}
		}
	}
}
?>
<!DOCTYPE html>
<html lang="pt-br" class="no-js">
<head>
<title>FORMULARIO DE IMAGEM</title>
<meta charset="utf-8">
<meta name="theme-color" content="#bf0e0e"/>
<meta name="robots" content="noindex">
<meta name="language" content="pt-br">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<section>
<div class="container">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data">
  <div class="form-group">
<label for="tipo">Tipo:</label>
<select class="form-control" name="tipo">
<option value="Tipo1" >Tipo1</option>
	<option value="Tipo2">Tipo2</option>
	</select>
	</div>
  <div class="form-group">
    <label for="responsavel">Responsavel</label>
    <input type="text" class="form-control" name="responsavel"  placeholder="Nome do responsavel">    
  </div>
  <div class="form-group">
    <label for="data">Data</label>
    <input type="text" class="form-control" name="data" value="<?php echo date('d/m/Y'); ?>">
  </div>
  <div class="form-group">
    <label for="url">Url</label>
    <input type="text" class="form-control" name="url"  placeholder="Link aqui">    
  </div>  
  
  <div class="form-group form-check">
      <label for="img">Selecionar Imagem</label>
    <input type="file" class="form-control" name="imagem">
    
  </div>
 <div class="form-group">
<label for="mensagem">Descrição:</label>
<textarea class="form-control ckeditor" name="mensagem" rows="4"></textarea>
</div> 
  <button type="submit" name="cadastrar" class="btn btn-primary">Enviar</button>
</form>
  </div>

</section>

</body>
</html>

Espero ter ajudado ai

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Samuel Pietro
      Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem.
       
      $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
    • By peterstefan
      Bom dia, estou fazendo uma cadastro via rest e estou utilizando o curl para cadastrar no webservice...
      Meu código está cadastrando tudo certinho, porem quando ele cadastra e mostra o retorno que foi cadastrado com sucesso ele fica o AGUARDE, CARREGANDO e não para.. não sei oque esta faltando pq já tentei varias coisas e não deu certo... 
       
       
       
      $Data = [ "nomeRazaoSocial" => $PostData['nomeRazaoSocial'], "identMF" => $PostData['identMF'], "email" => $PostData['email'], "telefone" => $PostData['telefone'], "senhaProvisoria" => $PostData['senhaProvisoria'] ]; $DataString = json_encode($Data); $curl = curl_init(WEBSERVICECADASTRO); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $DataString); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($DataString)) ); $result = curl_exec($curl); if ($result) { $jSON['success'] = "<i class='icon-checkmark'></i>Pronto, cadastro foi realizado com sucesso!"; }else{ $jSON['error'] = "<i class='icon-warning'></i>Oops! Erro ao cadastrar! Por favor, tente novamente!"; }  

       

    • By RSN
      Boa Noite,
      Preciso enviar uma consulta sql no corpo do e-mail, porém não estou conseguindo concatenar o laço while.
      <?php include_once('conexao.php'); require 'PHPMailer/PHPMailerAutoload.php'; $resultado = mysql_query("SELECT * FROM cupom WHERE FlagEstorno = 1;"); $linhas = mysql_num_rows($resultado); $mensagem = '<div class="x_content"> <table id="datatable-buttons" class="table table-striped table-bordered"> <thead> <tr> <th>Loja</th> <th>Nro Cupom</th> <th>Data</th> <th>Operador</th> </tr> </thead> <tbody> while($linhas = mysql_fetch_array( $resultado)){ echo " <tr>"; echo "<td>".$linhas['nroloja']."</td>"; echo "<td>".$linhas['NroCupom']."</td>"; echo "<td>".$linhas['DataProc']."</td>"; echo "<td>".$linhas['Operador']."</td>"; echo " </tr>"; }'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Username = ''; $mail->Password = ''; $mail->Port = 587; $mail->setFrom(''); $mail->addReplyTo(''); $mail->addAddress('', 'Nome'); $mail->isHTML(true); $mail->Subject = 'Assunto do email'; $mail->Body = $mensagem; $mail->AltBody = 'Para visualizar essa mensagem acesse http://site.com.br/mail'; //$mail->addAttachment('/tmp/image.jpg', 'nome.jpg'); if(!$mail->send()) { echo 'Não foi possível enviar a mensagem.<br>'; echo 'Erro: ' . $mail->ErrorInfo; } else { echo 'Mensagem enviada.'; } ?>  
    • By Augustomesquita
      Bom dia pessoal!
      Vocês também estão programando em primeira pessoa? Recentemente escrevi este artigo e gostaria de compartilhar a ideia com vocês.
      Pare de programar em primeira pessoa!
    • By Matheus Guto
      Eae pessoal, bom sou novo no ramo e quero uma ajudinha em um erro de um programa para médias
      Parse error: syntax error, unexpected 'endif' (T_ENDIF) in C:\xampp\htdocs\atividade2.php on line 32
      ah, e tá aqui o código
       
      <html>
          <head>
              <title>Médias</title>
          <meta charset="UTF-8">
          </head>
      <body>
          <div>
              <form method="get">
                  Primeira nota:<input type="text" name="nota1"/> <br>
                  Segunda nota:<input type="number" name="nota2"/> <br>
                  Terceira Nota:<input type="number" name="nota3"/>
                  <input type="submit" name="botao" value="clique"/>
              </form>
          <?php
              if (isset($_GET["botao"])) {
                  $nota1 = isset($_GET["nota1"])?$_GET["nota1"]:"";
                  $nota2 = isset($_GET["nota2"])?$_GET["nota2"]:"";
                  $nota3 = isset($_GET["nota3"])?$_GET["nota3"]:"";
              if ($nota1 == ""|| $nota3 =="" || $nota3 ==""){
                  echo "por favor digite todas as notas";
              } else {
                  $media = ($nota1+$nota2+$nota3)/3;
              echo "a média do aluno é" . $media . "<br>";
              }  if ($media >= 7)
              echo "aprovado";
                  elseif (($media < 7) && ($media >= 5))
                  echo "recuperação";
              else{
                  echo "reprovado";
              }
          endif
      endif
      ?>
          </div>
      </body>
      </html>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.