Criar arquivo temporário mudar formato e fazer download
Boa tarde galera do imasters.
Eu estou com uma seguinte questão.
Eu estou precisando pegar as informações de um arquivo salvo em php, e faze-lo download do mesmo.
Então eu tive a ideia de pegar essas informações, colocar em um arquivo txt, colocar dentro de um zip, mudar formato dele depois forçar o donwload. Até mudar o formato tudo bem, porém, faz um download do arquivo formatado, porém vazio e cria um outro arquivo dentro da pasta.
<?php
require_once("classes/License.php");
if(isset($_GET['id'])){
$id = $_GET['id'];
}else{
header("Location:report-license.php");
}
$License = new License();
foreach($License->selectFile($id) as $key => $values){
$tipo = $values->file_type;
$arquivo = $values->file_content;
$nome = $values->file_name;
$tamanho = $values->file_size;
}
$zip = new ZipArchive();
if($zip->open('arquivo.zip' , ZipArchive::CREATE ) === true){
$zip->addFile('License.txt');
$zip->addFromString('License.txt',$arquivo);
$zip->close();
}
rename("arquivo.zip",$nome);
if($arquivo){ // faz o teste se a variavel não esta vazia e se o arquivo realmente existe
switch(strtolower(substr(strrchr(basename($arquivo),"."),1))){ // verifica a extensão do arquivo para pegar o tipo
case "pdf": $tipo="application/pdf"; break;
case "exe": $tipo="application/octet-stream"; break;
case "zip": $tipo="application/zip"; break;
case "doc": $tipo="application/msword"; break;
case "xls": $tipo="application/vnd.ms-excel"; break;
case "ppt": $tipo="application/vnd.ms-powerpoint"; break;
case "gif": $tipo="image/gif"; break;
case "png": $tipo="image/png"; break;
case "jpg": $tipo="image/jpg"; break;
case "mp3": $tipo="audio/mpeg"; break;
case "php": // deixar vazio por seurança
case "htm": // deixar vazio por seurança
case "html": // deixar vazio por seurança
}
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($nome));
//header('Content-Disposition: filename='.nome);
header("Content-Disposition: attachment; filename=".basename($nome));
//readfile($local_arquivo);
}
Tem como eu criar um arquivo temporário, colocar ele dentro de um zip temporário, mudar formato e fazer donwload do mesmo?
Discussão (1)
Carregando comentários...