Na versão 2.1, esta funcionalidade da aplicação foi expandida para enviar uma informação a mais através da Web, juntamente com o arquivo exportado: foi incluído o parâmetro Post "DeviceId".
O Device ID, ou identificação do dispositivo, é um código de identificação única do seu iPhone ou iPad, que pode ser tratada no servidor que receber o arquivo para se definir autorizações, acessos, ou simplesmente identificar a origem do arquivo recebido.
O que muda na recepção do arquivo no servidor?
O script PHP intitulado "imapit_uploader.php", apresentado no artigo anterior como exemplo para recepção do arquivo exportado, agora pode receber e tratar esse novo parâmetro. No exemplo abaixo o DeviceId é apenas apresentado na tela de resposta do recebimento do arquivo. Veja o fonte do script PHP atualizado abaixo.
------------------------------------------------------------- Início do arquivo PHP (não inclua essa linha)
<?php
// iMapIt Uploader
// Exemplo de script php para upload do arquivo enviado pela aplicação iMapIt
// Script original: http://blog.thiagobelem.net/upload-de-arquivos-com-php/
// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'uploads/';
// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
// Array com as extensões permitidas
$_UP['extensoes'] = array('dxf', 'kml', 'gpx');
// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = false;
// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';
// Desloca a mensagem final algumas linhas para baixo
echo "<br><br><br>--- iMapIt Uploader ---<br><br>";
// Apresenta device ID recebido na variavel POST DeviceID
echo "Device ID:" . $_POST['DeviceId'] . "<br><br>";
// Apresenta o nome do arquivo
echo "Arquivo: " . $_FILES['iMapIt_File']['name'] . "<br><br>";
// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['iMapIt_File']['error'] != 0) {
die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['iMapIt_File']['error']]);
exit; // Para a execução do script
}
// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
// Faz a verificação da extensão do arquivo
$extensao = strtolower(end(explode('.', $_FILES['iMapIt_File']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
echo "Por favor, são permitidos apenas arquivos com as extensões: dxf, kml ou gpx";
}
// Faz a verificação do tamanho do arquivo
else if ($_UP['tamanho'] < $_FILES['iMapIt_File']['size']) {
echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
}
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
else {
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
// Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
$nome_final = time().'.jpg';
} else {
// Mantém o nome original do arquivo
$nome_final = $_FILES['iMapIt_File']['name'];
}
// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['iMapIt_File']['tmp_name'], $_UP['pasta'] .$nome_final)) {
// Upload efetuado com sucesso, exibe uma mensagem
echo "Upload realizado com sucesso!";
} else {
// Não foi possível fazer o upload, provavelmente a pasta está incorreta
echo "Não foi possível enviar o arquivo, tente novamente";
}
}
?>
---------------------------------------------------------------- Fim do arquivo PHP (não inclua essa linha)
Da mesma forma, o script HTML intitulado "teste_upload.html", apresentado no artigo anterior para testar o script de upload, foi modificado para enviar esse novo parâmetro. Veja o fonte do script HTML atualizado abaixo.
---------------------------------------------------------------- Fim do arquivo HTML (não inclua essa linha)
---------------------------------------------------------------- Fim do arquivo HTML (não inclua essa linha)
<!DOCTYPE HTML>
<HTML>
<HEAD>
<TITLE>iMapIt Loader Test</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</HEAD>
<BODY>
<FORM id="frm" name="iMapIt_Form" action="imapit_uploader.php" method="POST" enctype="multipart/form-data">
Selecione um arquivo para transferir<br>
<INPUT id="iMapIt_File" name="iMapIt_File" type="file" style="width:100%;"/><br>
Identificação do Dispositivo: <INPUT id="DeviceId" name="DeviceId" type="text" style="width:40%;" /> <br>
<INPUT id="submit" type="submit" value="Submit" />
</FORM>
</BODY>
</HTML>
---------------------------------------------------------------- Fim do arquivo HTML (não inclua essa linha)
É possivel passar a informaçao da versao Lite para a Pro?
ResponderExcluir