<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mjcarrascosa.com &#187; clases</title>
	<atom:link href="http://mjcarrascosa.com/tag/clases/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjcarrascosa.com</link>
	<description>Desarrollo web y otras hierbas</description>
	<lastBuildDate>Fri, 08 Jul 2011 07:41:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Clase para forzar la descarga de archivos en PHP</title>
		<link>http://mjcarrascosa.com/clase-para-forzar-la-descarga-de-archivos-en-php/</link>
		<comments>http://mjcarrascosa.com/clase-para-forzar-la-descarga-de-archivos-en-php/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 20:31:54 +0000</pubDate>
		<dc:creator>Manuel Jesús Carrascosa de la Blanca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[clases]]></category>

		<guid isPermaLink="false">http://mjcarrascosa.com/?p=79</guid>
		<description><![CDATA[Una de las cosas que muchas veces interesa hacer en nuestras aplicaciones es forzar la descarga de un archivo a través de un script PHP, por ejemplo para llevar la cuenta de los archivos descargados. Para ello se puede implementar una clase que simplifique el proceso, por ejemplo esta: &#60;?php class DownloadFile{ private $mimeType; private [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las cosas que muchas veces interesa hacer en nuestras aplicaciones es forzar la descarga de un archivo a través de un script PHP, por ejemplo para llevar la cuenta de los archivos descargados. Para ello se puede implementar una clase que simplifique el proceso, por ejemplo esta:</p>
<pre class="brush:php">
&lt;?php

class DownloadFile{
	private $mimeType;
	private $filename;
	private $downloadName;

	public function __construct($file, $mimeType = '', $downloadName = '')
	{
		if(!file_exists($file)) return;
		$this-&gt;filename = $file;
		$this-&gt;mimeType = $mimeType;

		if($downloadName != '')
			$this-&gt;downloadName = $downloadName;
		else
			$this-&gt;downloadName = $file;
	}

	public function download()
	{

		header("Content-type: ".$this-&gt;mimeType);
		header("Content-length: ".filesize($this-&gt;filename));
		header("Content-Disposition: attachment; filename=\"".$this-&gt;downloadName."\n");
		readfile($this-&gt;filename);
	}

	public function setMimeType($mimeType)
	{
		$this-&gt;mimeType = $mimeType;
	}

	public function setDownloadName($downloadName)
	{
		$this-&gt;downloadName = $downloadName;
	}

}
?&gt;
</pre>
<p>Por supuesto la clase se puede mejorar mucho (por ejemplo comprobando si el archivo existe o el MIME Type), pero es solo un ejemplo base de como se podría implementar este patrón.</p>
]]></content:encoded>
			<wfw:commentRss>http://mjcarrascosa.com/clase-para-forzar-la-descarga-de-archivos-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

