Arquivo demorando para ser listado no servidor

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 :joy:, 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 :joy:

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