Galera, eu to criando um JSON e mandando pra uma pasta do servidor, mas o arquivo só aparece uns dois minutos depois… Já tentei por FTP e salvando normal mesmo, já na pasta que deve ser.
Esse delay é normal mesmo? O arquivo (JSON) é bem pequeno, cerca de 150 bytes
.
Segue meu código pra fazer o Upload (tá funcionando, só tá demorando):
Enviando por FTP:
<?php
/* Conectar com o servidor FTP */
$conecta = ftp_connect('ftp.servidor.com');
if(!$conecta) die('Erro ao conectar com o servidor');
/* Autenticar no servidor */
$login = ftp_login($conecta, 'usuario', 'senha');
if(!$login) die('Erro ao autenticar');
/* Liga modo passivo */
ftp_pasv($conecta, true);
/* Envia o arquivo */
$envia = ftp_put($conecta, 'pastaQueVaiReceber', 'pastaLocalQueVaiEnviar', FTP_ASCII);
if(!$envia){
die('Erro ao enviar arquivo!');
}
else{
echo 'Arquivo enviado com sucesso!';
}
/* Desconecta do servidor */
ftp_close($conecta);
?>
Enviando localmente…
<?php
$nome = $_POST['nome'];
$bloco = $_POST['bloco'];
$apto = $_POST['apto'];
$rg = $_POST['rg'];
$empresa = $_POST['empresa'];
$veiculo = $_POST['veiculo'];
$placa = $_POST['placa'];
// Array com dados
$visitante = array(
'nome' => $nome,
'bloco' => $bloco,
'apartamento' => $apto,
'rg' => $rg,
'empresa' => $empresa,
'veiculo' => $veiculo,
'placa' => $placa,
'foto' => $destino
);
$date = date('Ymd-His');
$dados = $visitante;
$dados_json = json_encode($dados);
$fp = fopen("dados/cadastro.json", "w+");
$escreve = fwrite($fp, $dados_json);
fclose($fp);
?>
Vc está mandando uma pasta inteira por ftp? Não seria esse o gargalo, o melhor seria enviar arquivo por arquivo…
Verificou o retorno do ftp_pasv? Alias, ele é necessário?
Há alguma mensagem de erro? Alias, elas estão ativadas?
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
...
1 curtida
Opa! Não não, só o arquivo mesmo, ali no código que eu coloquei pasta mesmo. Mas tô enviando arquivo único: $fp = fopen("dados/cadastro.json", "w+");
Então, o arquivo envia, porém está demorando, e eu queria saber se era normal essa demora. O código tá funcionando.
Pelo FTP, eu só coloquei pra ver se iria mais rápido, mas deu na mesma, então tirei e deixei pra salvar direto mesmo
Normal não é, por isso perguntei da pasta, pois se tiver muitos arquivos pode dar esse delay…
Algumas dicas para ver se melhora:
1 - Troque o fopen, fwrite e fclose por file_put_contents…
http://php.net/manual/pt_BR/function.file-put-contents.php
file_put_contents('dados/cadastro.json', $dados, FILE_APPEND);
2 - Use o filezila para testar o ftp “por fora” do php e ver se o gargalo não está na rede
3 - Verifique se o firewall não está bloqueando as portas do ftp…
1 curtida
Então, pelo filezilla ele vai tranquilo, eu tava usando pra upar as pastas e vai em segundos.
Troquei e o arquivo foi salvo assim:
Alessandra SilvaA12506569780ConsultsegurZafiraDEK-3818
O estranho é que eu to upando uma imagem, e ela vai na mesma hora…
E o firewall eu desativei
Realmente eu não faço ideia de qual o problema, ainda mais sem mensagens de erro, sinto muito não poder ajudar, boa sorte
Tranquilo cara, valeu!! Bom dia
Ainda tenho uma última carta na manga , vc chegou a testar com file_put_contents e percebeu melhora na velocidade?
Esqueci de mencionar que usando fopen com w+, você está abrindo o arquivo tanto para leitura quanto para escrita, isso obviamente “pesa” um pouco no processamento, se for usar fopen melhor usar apenas w como opção (isso vai limpar o conteúdo do arquivo e substituir pelo que você está gravando…) ou usar a (mantém o conteudo anterior do arquivo inserindo seus novos dados no final do cursor…)…
$fp = fopen("dados/cadastro.json", "w"); #limpa e reescreve...
$fp = fopen("dados/cadastro.json", "a"); #adiciona no final...
Agora sim, acabaram-se minhas armas
Kkkkkkk então cara, eu queria um somente pra leitura. O problema do ‘a’ é que joga no final, o w+ deixa como escrita e leitura…
Com o ‘put’ ele demora do mesmo jeito, retorna depois de alguns minutos