0
I am trying to give file() in a file in txt format but it gives this error use (localhost) and I tried to give permission... follows the code: line error: $data = file($linkfile);
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['BTEnvia'])) {
session_start();//Inicializar a sessão com PHP
$datadia = date("Ymd");
$datadiaourday = date("dmY");
$datahora = date("His");
// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'upload_zip/';
// Pasta onde o arquivo vai ser extraido
$_UP['pastatemp'] = 'temp/';
// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 * 1024 * 50; // 50Mb
// Array com as extensões permitidas
$_UP['extensoes'] = array('zip', 'rar', 'rar5');
// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = true;
// 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';
// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['arquivo']['error'] != 0) {
die("Não foi possível fazer o upload, erro:" . $_UP['erros'][$_FILES['arquivo']['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
$tmp = explode('.', $_FILES['arquivo']['name']);
$fileExtension = end($tmp);
$extensao = strtolower($fileExtension);
if (array_search($extensao, $_UP['extensoes']) === false) {
echo "Por favor, envie arquivos com as seguintes extensões: zip, rar ou rar5";
exit;
}
// Faz a verificação do tamanho do arquivo
if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
echo "O arquivo enviado é muito grande, envie arquivos de até 50Mb.";
exit;
}
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
// 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
$datadia_hora = $datadia.$datahora;
$nome_final = "exp-$datadia_hora.zip";
} else {
// Mantém o nome original do arquivo
$nome_final = $_FILES['arquivo']['name'];
}
// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
echo "Upload efetuado com sucesso!";
echo '<a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
$arquivo_origem = "upload_zip/".$nome_final;
$arquivo_destino = "temp/".$nome_final;
if (copy($arquivo_origem, $arquivo_destino)){
$pasta_destino = "temp/".$datadia_hora."/";
$pasta_log = 'log/';
$zip = new ZipArchive;
$zip->open($arquivo_destino);
if($zip->extractTo($pasta_destino) == TRUE){
echo 'Arquivo descompactado com sucesso.';
$zip->close();
unlink("upload_zip/".$nome_final); // apaga o zip que foi upado
// verifica se existe a pasta log se não existir cria uma
if (file_exists($pasta_log) != TRUE) {
@mkdir("log/", 0777, true);
// verifica se a pasta com o dia "exemplo:13012018" existe dentro de log se não cria uma
$pasta_dia = "log/".$datadiaourday;
if (file_exists($pasta_dia) != TRUE) {
@mkdir($pasta_dia, 0777, true);
}
}
// copia o zip para a pasta log
rename("temp/".$nome_final, "log/".$datadiaourday."/".$nome_final);
//Verifica todos os arquivos da pasta TEMP/dia-hora
$diretorio = dir($pasta_destino);
while(($arquivo = $diretorio->read()) !== false){
echo '<a href='.$pasta_destino.$arquivo.'>'.$arquivo.'</a><br />';
$linkarquivo = $pasta_destino.$arquivo;
chmod ($linkarquivo, 0777);
$dados = file($linkarquivo);
//Ler os dados do array
/*foreach($dados as $linha){
//Retirar os espaços em branco no inicio e no final da string
$linha = trim($linha);
//Colocar em um array cada item separado pela virgula na string
$valor = explode('|', $linha);
}*/
}
$diretorio->close();
} else {
echo "Não foi possível enviar o arquivo, tente novamente";
}
} else {
echo "Não foi possível copiar o arquivo tente novamente";
}
}
}
Jonathan you could post the error message you are getting?
– Rafael Salomão
Wouldn’t it be tmp ? You’re using Wampserver?
– user94336