<?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/"
	>

<channel>
	<title>Nota mental</title>
	<atom:link href="http://moralesdelcastillo.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://moralesdelcastillo.com/blog</link>
	<description>No hacer "rm -rf /"</description>
	<pubDate>Sun, 21 Feb 2010 20:36:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cómo meter CSS en un portlet en Liferay</title>
		<link>http://moralesdelcastillo.com/blog/?p=27</link>
		<comments>http://moralesdelcastillo.com/blog/?p=27#comments</comments>
		<pubDate>Sun, 21 Feb 2010 20:30:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[liferay]]></category>

		<guid isPermaLink="false">http://moralesdelcastillo.com/blog/?p=27</guid>
		<description><![CDATA[Si queremos añadir un estilo a un único portlet, y no queremos utilizar dicho estilo en ningún otro portlet del portal, en vez de añadir una clase CSS en el tema, podemos añadir una hoja de estilos con las clases necesarias en nuestro portlet de la siguiente manera:
1) Meter en la carpeta WebContent el archivo [...]]]></description>
			<content:encoded><![CDATA[<p>Si queremos añadir un estilo a un único portlet, y no queremos utilizar dicho estilo en ningún otro portlet del portal, en vez de añadir una clase CSS en el tema, podemos añadir una hoja de estilos con las clases necesarias en nuestro portlet de la siguiente manera:</p>
<p>1) Meter en la carpeta<strong> WebContent</strong> el archivo CSS de nuestro portlet:</p>
<p><a href="http://moralesdelcastillo.com/blog/wp-content/uploads/2010/02/webcontent1.png"></a><a href="http://moralesdelcastillo.com/blog/wp-content/uploads/2010/02/webcontent2.png"><img class="alignnone size-full wp-image-35" title="webcontent2" src="http://moralesdelcastillo.com/blog/wp-content/uploads/2010/02/webcontent2.png" alt="webcontent2" width="254" height="216" /></a></p>
<p>Ojo!: la carpeta CSS debe de meterse en WebContent y NO en WEB-INF, ya que el contenido de WEB-INF no forma parte del árbol de documentos públicos de la aplicación y por lo tanto el cliente WEB no podrá acceder a ese recurso.</p>
<p>2) Para <strong>incluir</strong> la hoja de estilos en el jsp, hacer una llamada como la siguiente en nuestro jsp:</p>
<p>&lt;style type=&#8221;text/css&#8221;&gt;<br />
&lt;%@ include file=&#8221;/css/base.css&#8221; %&gt;<br />
&lt;/style&gt;</p>
<p>Dejo aquí un ejemplo para descargarse: <a href="http://moralesdelcastillo.com/blog/wp-content/uploads/2010/02/hellostruts-portlet-5121.war">hellostruts-portlet-5121</a> de <a href="http://www.robisoft.com/" target="_blank">Robisoft.com</a>, que me sirvió para entender cómo se hacía.</p>
<p><a href="http://www.robisoft.com/downloads/hello-struts-portlet/" target="_blank">Página original de descarga</a> del ejemplo.</p>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=27</wfw:commentRss>
		</item>
		<item>
		<title>Error ** Unable to load Mozilla for hosted mode ** en Eclipse con plugin GWT</title>
		<link>http://moralesdelcastillo.com/blog/?p=20</link>
		<comments>http://moralesdelcastillo.com/blog/?p=20#comments</comments>
		<pubDate>Tue, 08 Sep 2009 15:54:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://moralesdelcastillo.com/blog/?p=20</guid>
		<description><![CDATA[Una vez instalado el plugin para GWT de Eclipse, al crear un nuevo proyecto y pinchar en él con el botón derecho indicándo Debug As > Web Application, obtenemos el error:
** Unable to load Mozilla for hosted mode ** 
la solución más común a este error, es que no tenemos instalada la librería libstdc++5. Para [...]]]></description>
			<content:encoded><![CDATA[<p>Una vez instalado el plugin para GWT de Eclipse, al crear un nuevo proyecto y pinchar en él con el botón derecho indicándo <strong>Debug As > Web Application</strong>, obtenemos el error:</p>
<p>** Unable to load Mozilla for hosted mode ** </p>
<p>la solución más común a este error, es que no tenemos instalada la librería libstdc++5. Para solucionarlo, podemos bajarnos el paquete compat-libstdc++-33-3.2.3-47.fc4.i386.rpm disponible en <a href="http://rpm.pbone.net/index.php3/stat/4/idpl/1981813/com/compat-libstdc++-33-3.2.3-47.fc4.i386.rpm.html">http://rpm.pbone.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=20</wfw:commentRss>
		</item>
		<item>
		<title>Ver dónde ha instalado fedora una aplicación</title>
		<link>http://moralesdelcastillo.com/blog/?p=14</link>
		<comments>http://moralesdelcastillo.com/blog/?p=14#comments</comments>
		<pubDate>Thu, 13 Aug 2009 13:08:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[fedora]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://moralesdelcastillo.com/blog/?p=14</guid>
		<description><![CDATA[Símplemete decir:
rpm -ql nombre_a_buscar
donde q es de query y l de last
]]></description>
			<content:encoded><![CDATA[<p>Símplemete decir:</p>
<p><code>rpm -ql nombre_a_buscar</code></p>
<p>donde <em>q</em> es de <em>query</em> y <em>l</em> de <em>last</em></p>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=14</wfw:commentRss>
		</item>
		<item>
		<title>Poner teclado en español para NetBeans IDE 6.5 con Fedora</title>
		<link>http://moralesdelcastillo.com/blog/?p=10</link>
		<comments>http://moralesdelcastillo.com/blog/?p=10#comments</comments>
		<pubDate>Wed, 25 Feb 2009 19:38:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://moralesdelcastillo.com/blog/?p=10</guid>
		<description><![CDATA[Cuando instalamos NetBeans, y vamos a programar con él por primera vez, nos encontramos con que no podemos escribir ¡las llaves!, y más símbolos&#8230; parece que el teclado no está en español. Comprobamos que el resto de aplicaciones de nuestro escritorio sí tienen el teclado en español&#8230; ¿qué está pasando?
El problema es que la máquina [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando instalamos NetBeans, y vamos a programar con él por primera vez, nos encontramos con que no podemos escribir ¡las llaves!, y más símbolos&#8230; parece que el teclado no está en español. Comprobamos que el resto de aplicaciones de nuestro escritorio sí tienen el teclado en español&#8230; ¿qué está pasando?</p>
<p>El problema es que la máquina virtual de Java usa la configuración de <a href="http://en.wikipedia.org/wiki/SCIM" target="_self">SCIM</a> que por defecto está en inglés.</p>
<p>La solución consiste en editar el fichero global de SCIM (<strong>/etc/scim/global</strong>) y cambiar el valor de SupportedUnicodeLocales a español:</p>
<blockquote><p>/SupportedUnicodeLocales = es_ES.UTF-8</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=10</wfw:commentRss>
		</item>
		<item>
		<title>Cómo centrar una tabla con CSS</title>
		<link>http://moralesdelcastillo.com/blog/?p=9</link>
		<comments>http://moralesdelcastillo.com/blog/?p=9#comments</comments>
		<pubDate>Thu, 03 Apr 2008 12:09:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://anita.moralesdelcastillo.com/blog/?p=9</guid>
		<description><![CDATA[La solución más sencilla es envolver la tabla con un div:
&#60;div class=&#8217;centraTabla&#8217;&#62;
mitabla&#8230;.
&#60;/div&#62;
Y formatear ese div de la siguiente manera:
div.centraTabla{
text-align: center;
}
div.centraTabla table {
margin: 0 auto;
text-align: left;
}
Así de simple  
]]></description>
			<content:encoded><![CDATA[<p>La solución más sencilla es envolver la tabla con un div:</p>
<p>&lt;div class=&#8217;centraTabla&#8217;&gt;</p>
<p>mitabla&#8230;.</p>
<p>&lt;/div&gt;</p>
<p>Y formatear ese div de la siguiente manera:</p>
<p>div.centraTabla{<br />
text-align: center;<br />
}</p>
<p>div.centraTabla table {<br />
margin: 0 auto;<br />
text-align: left;<br />
}</p>
<p>Así de simple <img src='http://moralesdelcastillo.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=9</wfw:commentRss>
		</item>
		<item>
		<title>Datos BLOB con PHP y MySQL (II)</title>
		<link>http://moralesdelcastillo.com/blog/?p=8</link>
		<comments>http://moralesdelcastillo.com/blog/?p=8#comments</comments>
		<pubDate>Fri, 22 Feb 2008 13:20:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://anita.moralesdelcastillo.com/blog/?p=8</guid>
		<description><![CDATA[En esta ocasión vamos a ver cómo podemos descargar desde nuestro navegador un archivo que tenemos almacenado en la base de datos.
Para ello, sólamente tenemos que jugar con las cabeceras de nuestra página:
header (&#8221;Content-Disposition: attachment; filename=&#8221;.$nombre);
header(&#8221;Content-Type: &#8220;.$extension);
header (&#8221;Content-Length: &#8220;.$size);
print $contenido;
Estos valores (previamente almacenados en la base de datos) los obtenemos de la variable $_FILES cuando [...]]]></description>
			<content:encoded><![CDATA[<p>En esta ocasión vamos a ver cómo podemos descargar desde nuestro navegador un archivo que tenemos almacenado en la base de datos.</p>
<p>Para ello, sólamente tenemos que jugar con las cabeceras de nuestra página:</p>
<blockquote><p>header (&#8221;Content-Disposition: attachment; filename=&#8221;.$nombre);<br />
header(&#8221;Content-Type: &#8220;.$extension);<br />
header (&#8221;Content-Length: &#8220;.$size);<br />
print $contenido;</p></blockquote>
<p>Estos valores (previamente almacenados en la base de datos) los obtenemos de la variable $_FILES cuando estamos &#8220;subiendo&#8221; el archivo a la base de datos.</p>
<p>$nombre = $_FILES['userfile']['name'];<br />
$extension = $_FILES['userfile']['type'];<br />
$tam = $_FILES['userfile']['size'];</p>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=8</wfw:commentRss>
		</item>
		<item>
		<title>Cómo evitar inyección SQL en PHP</title>
		<link>http://moralesdelcastillo.com/blog/?p=7</link>
		<comments>http://moralesdelcastillo.com/blog/?p=7#comments</comments>
		<pubDate>Tue, 15 Jan 2008 10:49:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://anita.moralesdelcastillo.com/blog/?p=7</guid>
		<description><![CDATA[¿Qué es la inyección SQL?
Es una vulnerabilidad informática en la que se introduce código SQL malintencionado en los campos de un formulario.
Veámoslo con un ejemplo:
1) Tengo una sentencia SQL dentro de mi código, tal como esta:

$query = "SELECT * FROM Usuarios WHERE nombre = '$nombreUsuario' ";
$resul = mysql_query($query);
donde en nombreUsuario tengo el valor que recibido [...]]]></description>
			<content:encoded><![CDATA[<p><strong>¿Qué es la inyección SQL?</strong></p>
<p>Es una vulnerabilidad informática en la que se introduce código SQL malintencionado en los campos de un formulario.</p>
<p>Veámoslo con un <strong>ejemplo</strong>:</p>
<p>1) Tengo una sentencia SQL dentro de mi código, tal como esta:<br />
<code><br />
$query = "SELECT * FROM Usuarios WHERE nombre = '$nombreUsuario' ";</code></p>
<p>$resul = mysql_query($query);</p>
<p>donde en nombreUsuario tengo el valor que recibido del usuario en el formulario.</p>
<p>2)Si el usuario, introduce &#8220;Pepito&#8221;, la sentencia que ejecutará la aplicación será:</p>
<p><code><br />
$query = "SELECT * FROM Usuarios WHERE nombre = 'Pepito' ";<br />
</code></p>
<p>que se ejecutará sin problemas.</p>
<p>3) Imaginemos ahora que el usuario tiene un poco más de mala idea e introduce esto en el campo nombreUsuario del formulario :</p>
<p><code><br />
"Pepito'; DROP TABLE Usuarios; SELECT * FROM Facturas";<br />
</code></p>
<p>4) La sentencia que ejecutará la aplicación será:</p>
<p><code><br />
$query = "SELECT * FROM Usuarios WHERE nombre = 'Pepito'; DROP TABLE    Usuarios; SELECT * FROM Facturas" ;<br />
</code></p>
<p>De forma que está eliminando datos de nuestra base de datos, y accediendo a datos para los cuales en un principio no debería de tener permiso.</p>
<p><strong>¿Cómo lo solucionamos? </strong></p>
<p>PHP nos facilita la función <strong>mysql_real_escape_string</strong>(string $cadena_no_escapada [, resource $id_enlace].</p>
<p>Usando esta función, nuestra consulta quedaría de la forma:</p>
<p><code><br />
$query =  sprintf("SELECT * FROM Usuarios WHERE nombre = '%s' ", mysql_real_escape_string($nombreUsuario) );</code></p>
<p>Puedes encontrar más información sobre este tema en la <a href="http://es.wikipedia.org/wiki/Portada" title="Wikipedia">Wikipedia</a>, en el siguiente enlace:</p>
<p><a href="http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL"> http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=7</wfw:commentRss>
		</item>
		<item>
		<title>Cambiar el aspecto de un elemento Select</title>
		<link>http://moralesdelcastillo.com/blog/?p=5</link>
		<comments>http://moralesdelcastillo.com/blog/?p=5#comments</comments>
		<pubDate>Fri, 21 Dec 2007 10:52:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://anita.moralesdelcastillo.com/blog/?p=5</guid>
		<description><![CDATA[Cambiar aspecto general
Para ello, sólamente tendremos que modificar el estilo del tag &#8217;select&#8217;.
&#160;
select{
 width: 15em;
border: 1px solid #D9D9D9;
}
Cambiar la barra de desplazamiento
He encontrado una página desde la que podemos aprender a cambiar el color de nuestros elementos Select fácilmente:
 http://iconico.com/CSSScrollbar/
Elegimos la combinación de colores que queremos utilizar, y el programita nos genera el CSS de [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Cambiar aspecto general</strong></p>
<p>Para ello, sólamente tendremos que modificar el estilo del tag &#8217;select&#8217;.</p>
<p align="left">&nbsp;</p>
<blockquote><p>select{</p>
<blockquote><p> width: 15em;<br />
border: 1px solid #D9D9D9;</p></blockquote>
<p>}</p></blockquote>
<p><strong>Cambiar la barra de desplazamiento</strong></p>
<p>He encontrado una página desde la que podemos aprender a cambiar el color de nuestros elementos Select fácilmente:</p>
<p><a href="http://iconico.com/CSSScrollbar/" title=" http://iconico.com/CSSScrollbar/"> http://iconico.com/CSSScrollbar/</a></p>
<p>Elegimos la combinación de colores que queremos utilizar, y el programita nos genera el CSS de nuestro elemento directamente.</p>
<p>NOTA: El único problema que tiene, es que no funciona en Firefox.</p>
<p>Dejo un pantallazo de la aplicación web para el que quiera verlo antes.</p>
<p><a href="http://anita.moralesdelcastillo.com/blog/wp-content/uploads/2007/12/pantallazo.png" title="Pantallazo"><img src="http://anita.moralesdelcastillo.com/blog/wp-content/uploads/2007/12/pantallazo.png" alt="Pantallazo" /></a></p>
<p>Un resumen  de los elementos que podemos modificar en la barra de desplazamiento:</p>
<ul>
<li>scrollbar-arrow-color</li>
</ul>
<ul>
<li> scrollbar-3Dlight-color</li>
</ul>
<ul>
<li> scrollbar-darkshadow-color</li>
</ul>
<ul>
<li>scrollbar-face-color</li>
</ul>
<ul>
<li>scrollbar-highlight-color</li>
</ul>
<ul>
<li>scrollbar-shadow-color</li>
</ul>
<ul>
<li>scrollbar-track-color</li>
</ul>
<p>Por ejemplo, para cambiar la barra de desplazamiento de todos nuestros elementos select, haremos:</p>
<p align="left">&nbsp;</p>
<blockquote><p>select{</p>
<blockquote><p> scrollbar-arrow-color: #FFFFFF;<br />
scrollbar-face-color: #8E6384;</p></blockquote>
<p>}</p></blockquote>
<p><strong> Cambiar los elementos option</strong></p>
<p>Para ello, simplemente hay que modificar las opciones del elemento &#8216;option&#8217;.</p>
<p>Por ejemplo, para cambiar el color del texto</p>
<p align="left">&nbsp;</p>
<blockquote><p>option{</p>
<blockquote><p> color: #746F7C;</p></blockquote>
<p>}</p></blockquote>
<p>Algo que puede ser bastante útil, es definir distintas clases para los elementos option. Por ejemplo supongamos que queremos hacer un elemento select en el que tengamos carreras universitarias. Podríamos diferenciar entre licenciaturas y diplomaturas, para que sea más fácil distinguirlas:</p>
<p align="left">&nbsp;</p>
<blockquote><p>option.licenciatura{</p>
<blockquote><p> background-color: red;</p></blockquote>
<p>}</p>
<p>option.diplomatura{</p>
<blockquote><p> background-color: blue;</p></blockquote>
<p>}</p></blockquote>
<p>En nuestro código HTML podríamos:</p>
<p align="left">&nbsp;</p>
<blockquote><p>&lt;select id=&#8217;estudios&#8217;&gt;</p>
<blockquote><p> &lt;option class=&#8217;licenciatura&#8217;&gt;Licenciatura en Bellas Artes&lt;/option&gt;<br />
&lt;option class=&#8217;diplomatura&#8217;&gt;Diplomado en Estadística&lt;/option&gt;</p></blockquote>
<p>&lt;/select&gt;</p></blockquote>
<p>De esta forma, de un simple vistazo, podremos diferenciar dos tipos de titulaciones en nuestro select.</p>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=5</wfw:commentRss>
		</item>
		<item>
		<title>Datos BLOB con PHP y mySQL</title>
		<link>http://moralesdelcastillo.com/blog/?p=3</link>
		<comments>http://moralesdelcastillo.com/blog/?p=3#comments</comments>
		<pubDate>Tue, 11 Dec 2007 09:23:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://anita.moralesdelcastillo.com/blog/?p=3</guid>
		<description><![CDATA[Vamos a ver cómo podemos guardar ficheros de nuestro ordenador en la base de datos mySQL de nuestro servidor.
Lo primero que tenemos que hacer es crear la base de datos. Nos centramos en la tabla que contendrá nuestro archivo. La sentencia SQL para crear el archivo será:
CREATE TABLE Fichero(
id INT NOT NULL AUTO_INCREMENT,
contenido MEDIUMBLOB NOT [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos a ver cómo podemos guardar ficheros de nuestro ordenador en la base de datos mySQL de nuestro servidor.</p>
<p>Lo primero que tenemos que hacer es crear la base de datos. Nos centramos en la tabla que contendrá nuestro archivo. La sentencia SQL para crear el archivo será:</p>
<blockquote><p>CREATE TABLE Fichero(<br />
id INT NOT NULL AUTO_INCREMENT,<br />
contenido MEDIUMBLOB NOT NULL,<br />
nombre VARCHAR(100) NOT NULL,<br />
extension VARCHAR(5) NOT NULL,<br />
titulo VARCHAR(120),<br />
tamano INT NOT NULL,<br />
PRIMARY KEY (id)) TYPE=INNODB;</p></blockquote>
<p>El contenido del archivo se almacenará en el campo &#8216;contenido&#8217;, que es de tipo MEDIUMBLOB (permite almacenar archivos de hasta 16 MB).</p>
<p>Veamos ahora nuestro formulario:</p>
<blockquote><p>&lt;form enctype=&#8221;multipart/form-data&#8221; action=&#8221;$PHP_SELF&#8221; method=&#8217;post&#8217;&gt;</p>
<p>&lt;label for=&#8217;fichero&#8217;&gt;Fichero a guardar:&lt;/label&gt;<br />
&lt;input type=&#8217;file&#8217; name=&#8217;userfile&#8217; id=&#8217;fichero&#8217;/&gt;</p>
<p>&lt;input type=&#8217;submit&#8217; value=&#8217;Enviar fichero&#8217;&gt;</p>
<p>&lt;/form&gt;</p></blockquote>
<p>Para tratar el fichero que subimos, utilizamos el array $_FILES ($HTTP_POST_FILES p ara versiones anteriores a PHP 4.1.0)  que contiene la información sobre el archivo enviado.</p>
<p>Para describir el contenido de $_FILES, veremos unos ejemplos con el valor &#8216;userfile&#8217; como nombre de fichero (al igual que en el formulario).</p>
<blockquote><p>$_FILES['userfile']['name']: nombre original del fichero en la máquina cliente</p>
<p>$_FILES['userfile']['type']: tipo MIME del fichero</p>
<p>$_FILES['userfile']['size']: tamaño en bytes del fichero</p>
<p>$_FILES['userfile']['tmp_name']: nombre del fichero temporal que se utiliza para almacenar en el servidor el archivo recibido.</p></blockquote>
<p>Podemos comprobar facilmente si un archivo ha sido cargado a través de HTTP POST con la función is_uploaded_file($_FILES['userfile']['tmp_name']).</p>
<p>Por último, podemos hacer una función como la siguiente para almacenar los datos en la base de datos:</p>
<blockquote><p>function addFichero(){<br />
/*Recupero  los datos característicos para introducirlos en la base de datos*/</p>
<p>$nombre = $_FILES['userfile']['name'];<br />
$ext = $_FILES['userfile']['type'];<br />
$tam = $_FILES['userfile']['size'];</p>
<p>$fp = fopen($_FILES['userfile']['tmp_name'], &#8220;rb&#8221;);<br />
$contenido = fread($fp, $tam);<br />
$contenido = addslashes($contenido);<br />
fclose($fp);</p>
<p>/* Guardo los datos en la base de datos */<br />
$sql = &#8220;INSERT INTO Fichero VALUES(&#8221;, &#8216;$contenido&#8217;, &#8216;$nombre&#8217;, &#8216;$ext&#8217;, &#8221;, &#8216;$tam&#8217;)&#8221;;<br />
if (!mysql_query  ($sql))<br />
die(&#8221;Error al añadir el fichero&#8221;);<br />
else<br />
echo &#8220;Se ha guardado correctamente el archivo&#8221;;<br />
}</p></blockquote>
<p>Es posible que necesitemos subir más de un archivo a nuestro servidor en un único formulario. Para ello, podemos usar un array para que sea más sencillo manejarlos:</p>
<blockquote><p>&lt;form enctype=&#8221;multipart/form-data&#8221; action=&#8221;$PHP_SELF&#8221; method=&#8217;post&#8217;&gt;</p>
<p>&lt;p&gt;Subir estos archivos:&lt;/p&gt;<br />
&lt;input type=&#8217;file&#8217; name=&#8217;userfile[]&#8216;/&gt;<br />
&lt;input type=&#8217;file&#8217; name=&#8217;userfile[]&#8216;/&gt;</p>
<p>&lt;input type=&#8217;submit&#8217; value=&#8217;Enviar fichero&#8217;&gt;</p>
<p>&lt;/form&gt;</p></blockquote>
<p>De esta manera, almacenamos los ficheros como un array, al que podemos acceder así:</p>
<blockquote><p>$_FILES['userfile']['name'][0] , $_FILES['userfile']['name'][1] , etc&#8230;</p></blockquote>
<p>Puedes encontrar más información en:</p>
<blockquote>
<ul>
<li>http://es.php.net/manual/es/features.file-upload.php</li>
<li>http://es2.php.net/manual/es/function.is-uploaded-file.php</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://moralesdelcastillo.com/blog/?feed=rss2&amp;p=3</wfw:commentRss>
		</item>
	</channel>
</rss>
