Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Gravar ações feitas no script


Kairion

Question

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 to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 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.

Edited by Durubi
Link to comment
Share on other 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.

Edited by Kairion
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 0
fopen("Logs/arquivos.txt", "a");

Só substituir a função fopen por esta.

Abraços.

Já utilizei este fopen, porém não funciona.

É como se ele tentasse encontrar o arquivos.txt no local onde é extraido o arquivo :S (no caso, na pasta root).

Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...