Hola esto lo realize junto con un libro que tenia, y lo
modifique solo para las imagenes pero tambien
sirve para guardar archivos y luego descargar y eliminar
el mismo,
primero creas la tabla:
CREATE TABLE filestore (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
FileName VARCHAR(255) NOT NULL,
MimeType VARCHAR(50) NOT NULL,
Description VARCHAR (255) NOT NULL,
FileData MEDIUMBLOB
);
//Toma nota en el mediumblob puedes cambiarlo a blob o tinyblob
TINYBLOB=255B
BLOB=65KB
MEDIUMBLOB=16.7MB
Despues creamos el codigo php
prueba.php Código PHP:
<?php
$dbcnx = mysql_connect("localhost", "usuario", "password");
mysql_select_db("nombre_base _de_datos");
if (($action == "view" or $action == "dnld") and $id != "") {
// User is retrieving a file
$sql = "SELECT FileName, MimeType, FileData
FROM filestore WHERE ID = '$id'";
$result = @mysql_query($sql);
if (!$result) die("Database error: " . mysql_error());
$filename = mysql_result($result,0,"FileName");
$mimetype = mysql_result($result,0,"MimeType");
$filedata = mysql_result($result,0,"FileData");
if ($action == "dnld") {
if (strpos($HTTP_USER_AGENT,"MSIE"))
$mimetype = "application/x-download";
else
$mimetype = "application/octet-stream";
}
header("Content-disposition: filename=$filename");
header("Content-Type: $mimetype");
header("Content-Length: " . strlen($filedata));
echo($filedata);
exit();
} elseif ($action == "del" and $id != "") {
// User is deleting a file
$sql = "DELETE FROM filestore WHERE ID = '$id'";
$ok = @mysql_query($sql);
if (!$ok) die("Database error: " . mysql_error());
header("Location: $PHP_SELF");
exit();
} elseif ($action == "ulfile" and $uploadfile != "") {
// Bail out if the file isn’t really an upload.
if (!is_uploaded_file($uploadfile))
die("$uploadfile is not an uploaded file!");
// Open file for binary reading ("rb")
$tempfile = fopen($uploadfile,"rb");
// Read the entire file into memory using PHP's
// filesize function to get the file size.
$filedata = fread($tempfile,filesize($uploadfile));
// Prepare for database insert by adding backslashes
// before special characters.
$filedata = addslashes($filedata);
// Create the SQL query.
$sql = "INSERT INTO filestore SET
FileName = '$uploadfile_name',
MimeType = '$uploadfile_type',
Description = '$desc',
FileData = '$filedata'";
// Perform the insert.
$ok = @mysql_query($sql);
if (!$ok) die("Database error storing file: " . mysql_error());
header("Location: $PHP_SELF");
exit();
}
// Default page view: lists stored files
$sql = "SELECT ID, FileName, MimeType, Description
FROM filestore";
$filelist = @mysql_query($sql)
or die("Database error: " . mysql_error());
?>
<html>
<head>
<title> Subir fotos y guardando</title>
</head>
<body>
<h1>Depósito De los Archivos </h1>
<font color="#FF0000">No se subira los archivos que no contenga imagenes</font>
<form action="<?=$PHP_SELF?>?action=ulfile" method="post"
enctype="multipart/form-data">
<p>Elegir imagen:<br />
<input type="file" name="uploadfile" /></p>
<p>Descripcion:<br />
<input type="text" name="desc" maxlength="255" /></p>
<p><input type="submit" name="go" value="subir" /></p>
</form>
<p>Los siguientes archivos estan guardados en la base de datos:</p>
<table width="600" border="1" cellpadding="2" cellspacing="0">
<tr>
<th align="center" cellpadding="2">Archivo</th>
<th align="center" width="100%">Informacion</th>
</tr>
<?php
if (mysql_num_rows($filelist) > 0) {
while ($f = mysql_fetch_array($filelist)) {
?>
<tr valign="top" >
<td nowrap align="center">
<a href="<?=$PHP_SELF?>?action=view&id=<?=$f['ID']?>">
<img src="?action=view&id=<?=$f['ID']?>" height="100" width="100" border="0"> </a> <br> <?=$f['FileName']?>
</td>
<td nowrap width="100%"><b>Tipo</b> <?=$f['MimeType']?> <br>
<b>Descripcion</b> <?=$f['Description']?><br><br><br>
<b>Opciones:</b><br>
[<a href="<?=$PHP_SELF?>?action=dnld&id=<?=$f['ID']?>">Descargar</a> |
<a href="<?=$PHP_SELF?>?action=del&id=<?=$f['ID']?>"
onClick="return confirm('Delete this file?');">Eliminar</a> |
<a href="<?=$PHP_SELF?>?action=view&id=<?=$f['ID']?>">Ver en grande</a>]
</td>
</tr>
<?php
}
} else {
?>
<tr><td colspan="4" align="center">No hay Archivos!</td></tr>
<?php
}
?>
</table>
</body>
</html>
Espero haberte ayudado en algo
saludos