Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Gravar ações feitas no script


Kairion

Pergunta

Olá a todos.

Utilizei um script como base, e fiz um sistema que faz meu servidor baixar e extrair qualquer coisa que eu mande, porém, eu gostaria que ele gravasse em um arquivo TXT todos os arquivos baixados.

Como eu poderia fazer isto? Quem puder me ajudar, ficarei grato.

Para visualizar o script, basta baixar ele clicando aqui.

Atenciosamente;

Kairion

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

Você deve colocar na parte aonde ele faz o download um código que escreva qual arquivo que está sendo baixando em um .txt.

Um exemplo disso seria este código:

$Arquivo = "arquivo.exe"; // Arquivo que está sendo baixado
$FileHandler = fopen("temp/arquivos.txt", "a");
fwrite($FileHandler, $Arquivo . '\n', 500); // \n = final de linha em sistemas Unix/Linux
fclose($FileHandler);

Este código escreveria arquivo.exe no arquivos.txt.

Funções:

fopen: http://br.php.net/manual/pt_BR/function.fopen.php

fwrite: http://br.php.net/manual/pt_BR/function.fwrite.php

fclose: http://br.php.net/manual/pt_BR/function.fclose.php

Abraços.

Editado por Durubi
Link para o comentário
Compartilhar em outros sites

  • 0
Você deve colocar na parte aonde ele faz o download um código que escreva qual arquivo que está sendo baixando em um .txt.

Um exemplo disso seria este código:

$Arquivo = "arquivo.exe"; // Arquivo que está sendo baixado
 $FileHandler = fopen("temp/arquivos.txt", "a");
 fwrite($FileHandler, $Arquivo . '\n', 500); // \n = final de linha em sistemas Unix/Linux
 fclose($FileHandler);
Este código escreveria arquivo.exe no arquivos.txt. Funções: fopen: http://br.php.net/manual/pt_BR/function.fopen.php fwrite: http://br.php.net/manual/pt_BR/function.fwrite.php fclose: http://br.php.net/manual/pt_BR/function.fclose.php Abraços.
Bom, com ele é possível baixar vários arquivos, como eu poderia fazer com que ele pegue o nome do arquivo que foi selecionado para ser baixado? Editado: Estou usando este código:
$files = "$_supportedCMSs";
            $FileHandler = fopen("arquivos.txt", "a");
            fwrite($FileHandler, $files . '\n', 500);
            fclose($FileHandler);

Testei em minha host windows, porém, ele não gravou nada.

Editado por Kairion
Link para o comentário
Compartilhar em outros sites

  • 0

Substitua no downloader.php:

Isto (linha 470):

// Remove the temp file
@unlink ($_SESSION['tempfile']);
Por isto:
// Remove the temp file and write the name of file in temp/arquivos.txt
$FileHandler = fopen("temp/arquivos.txt", "a");
fwrite($FileHandler, $_SESSION['tempfile'] . '\n', 500); // \n = line feed in Unix/Linux systems
fclose($FileHandler);
@unlink ($_SESSION['tempfile']);
____________________________________________________________ Isto (linha 518 após a substituição acima):
// Remove the temp file
$downloader->removeTemp ($_SESSION['temp']);
@rmdir ($_SESSION['temp']);
Por isto:
// Remove the temp file and write the name of file in temp/arquivos.txt
$FileHandler = fopen("temp/arquivos.txt", "a");
fwrite($FileHandler, $_SESSION['tempfile'] . '\n', 500); // \n = line feed in Unix/Linux systems
fclose($FileHandler);
$downloader->removeTemp ($_SESSION['temp']);
@rmdir ($_SESSION['temp']);

Me avise se funcionar ou não!

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Funcionou em partes, editei o:

fopen("temp/arquivos.txt", "a");
para:
fopen("arquivos.txt", "a");

E ele criou um "arquivos.txt" na pasta principal, invés de criar na pasta SDownloader.

E, invés de adicionar o nome, adicionou isto:

C:/hosted/kairion/SDownloader/temp/latest.zip\n

Eu queria que ele gravasse o nome do arquivo (exemplo: Joomla, phpBB, etc) ou o final (exemplo: site.zip, forum.zip, phpbb.zip, joomla.zip, etc).

Caso nenhum destes acima seja possível, apenas queria tirar o "\n".

Obs.: Seus créditos serão colocados por esta função :).

Link para o comentário
Compartilhar em outros sites

  • 0

Em primeiro lugar, ups não são permitidos...

Em segundo lugar, para pegar o nome do arquivo, use o explode na variável que guarda o valor "C:/hosted/kairion/SDownloader/temp/latest.zip\n", "exploda" as /, o nome será o último elemento do array, para você achar o último conte o número de elemento (isso se faz com o count) o último será igual ao número de elementos -1, para remover o \n utilize o str_replace.

Link para o comentário
Compartilhar em outros sites

  • 0

$File = explode('/', $_SESSION['tempfile']);
$File = $File[count($File) - 1];

Coloca este código no começo daquele "script" que te passei, e depois troca o $_SESSION['tempfile'] por $File.

Mas recomendo à você dar uma olhada na função explode e no count, para você entender melhor o código e o que "fiz".

Obrigado ao ESerra pela dica, não sabia como fazer. :P

Tava pensando em um explode + foreach, já que o último valor a ser escrito seria o arquivo. (Tinha esquecido do count)

Poste aí depois se funcionou. :)

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Substituia todo o código que eu te passei por isso:

$FileHandler = fopen(dirname(__FILE__) . "/Logs/arquivos.txt", "a");
$File = end(explode('/', $_SESSION['tempfile']));
fwrite($FileHandler, $File . "\n", 500); // \n = line feed in Unix/Linux systems
fclose($FileHandler);

Se a pasta Logs estiver criada, tem que estar funcionando.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
Substituia todo o código que eu te passei por isso:

$FileHandler = fopen(dirname(__FILE__) . "/Logs/arquivos.txt", "a");
 $File = end(explode('/', $_SESSION['tempfile']));
 fwrite($FileHandler, $File . "\n", 500); // \n = line feed in Unix/Linux systems
 fclose($FileHandler);

Se a pasta Logs estiver criada, tem que estar funcionando.

Abraços.

Funcionou perfeitamente.

Muito obrigado, muito obrigado mesmo.

Seus créditos foram adicionados ao "Change Log" de atualizações.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...