Arquivo corrompido ao forçar Download php
Olá, estou com um problema que não consigo resolver a meses.
Fiz este codigo para download, so q o problema q todos os arquivos (meno PDF) vem corrompidos.
<?php
session_start();
require_once ("conectar.php");
$id_arquivo = $_GET['id'];
$select_arquivo = "SELECT * FROM arquivo WHERE id = '$id_arquivo'";
$query_arquivo = mysql_query($select_arquivo);
$result_arquivo = mysql_fetch_assoc($query_arquivo);
$arquivo = $result_arquivo['arquivo'];
$local = '../arquivos/';
$local_arquivo = $local . $arquivo;
if(stripos($arquivo, './') !== false || stripos($arquivo, '../') !== false || !file_exists($local_arquivo)){
echo "<script type='text/javascript'>
alert('O comando não pode ser executado!');
window.location='../index.php';
</script>";
exit();
}
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($local_arquivo));
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: filename='.$arquivo);
header("Content-Disposition: attachment; filename=".basename($local_arquivo));
readfile($local_arquivo); // Envia o arquivo para o cliente
$update_arquivo = mysql_query("UPDATE arquivo SET quantidade = quantidade + 1 WHERE id='$id_arquivo' ");
// INSERE NO BANCO DE DADOS NA TABELA DOWNLOAD O ARQUIVO QUE FOI BAIXADO E QUEM E QUANDO O BAIXOU
$id_usuario = $_SESSION['id'];
$select_download = "SELECT * FROM download WHERE id_usuario = '$id_usuario' and id_arquivo = '$id_arquivo'";
$query_download = mysql_query($select_download);
$row_download = mysql_num_rows($query_download);
if ($row_download > 0){
// ATUALIZA NO BANCO DE DADOS AS INFORMAÇOES DE DOWNLOAD
$update_download = mysql_query("UPDATE download SET quantidade = quantidade+1 , data = NOW() WHERE id_usuario = '$id_usuario' and id_arquivo = '$id_arquivo' ");
}else{
// INSERE NO BANCO DE DADOS QUE HOUVE UM NOVO DOWNLOAD
$insert_dowload = mysql_query("INSERT INTO download (id, id_usuario, id_arquivo, data, quantidade) VALUES ('', '$id_usuario', '$id_arquivo', NOW(), '1')");
}
?>
Agradeço desde já, obrigado!
Discussão (0)
Carregando comentários...