Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pongilo

Arquivo corrompido ao forçar Download php

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.