¿Para qué guardarlos en MySQL?
Para todo lo demás, www.php.net/fopen aunque como estoy aburrido en el curro, te lo hago. Supongo que las especificaciones no serán así exactamente, pero como te digo me aburro mucho así que me las invento xD
config.php:
$host_mysql = "localhost";
$user_mysql = "ejemplo";
$pass_mysql = "wtf0rzk";
$db_mysql = "texto";
$tabla_mysql = "subidas";
$nombre_archivo = "archivo.txt";
Primero vamos a conectarnos a MySQL para ver cuándo se actualizó por última vez el fichero y si conviene volver a guardarlo:
require ("config.php");
$mysql = mysql_connect($host_mysql, $user_mysql, $pass_mysql)
or die('Error de conexi&oactue;n: ' . mysql_error()); // Se sigue usando die? En la ref de PHP sale como if (!$mysql)
mysql_select_db($db_mysql, $mysql)
or die ('Error al seleccionar la BD: ' . mysql_error());
$hace_diez_mins = $time() - 600;
$consulta = "SELECT * FROM $tabla_mysql WHERE fecha > $hace_diez_mins";
$resultado = mysql_query($consulta, $mysql)
or die('Error recogiendo datos:' . mysql_error()); // Espero que devuelva FALSE sólo si la consulta no es válida
if (!mysql_num_rows($resultado)) // Si no ha seleccionado nada
{
El meollo de la cuestión, aquí se abre el archivo y se lee:
if (!(is_file($nombre_archivo) && is_readable($nombre_archivo)))
die ('El archivo no existe o no se puede acceder a él');
else {
$archivo = fopen($nombre_archivo, "r");
$contenido = fread($archivo, filesize($nombre_archivo));
$contenido = addslashes($contenido); // SQL Injection a mi?
fclose($archivo);
echo $contenido;
Ahora, si quieres guardarlo en MySQL:
$consulta = "INSERT INTO $tabla_mysql (contenido, fecha) VALUES ('$contenido', $time)";
mysql_query($consulta, $mysql)
or die('Error en la inserción:' . mysql_error());
mysql_close($mysql);
}
Para que quede perfecto, te quedaría hacer con filemtime($nombre_archivo) una comprobación para sólo subir si realmente se ha modificado el archivo después que el último almacenado en la BD.
No prometo que funcione, esta hecho todo a ojo, pero es para que tengas una base de más o menos cómo hacerlo.