Ver Mensaje Individual
  #10 (permalink)  
Antiguo 27/12/2006, 00:21
Avatar de BLAH !!
BLAH !!
 
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
he intentado todo !!!!

ufff... me rindo he intentado de todo .... llevo 3 dias haciendo bases de datos para hacer lo que quiero, pero no he podido conseguirlo.

Me explico: como ya les dije encontre una base de datos a la cual agregue una opcion para borrar archivos, esta es muy buena ya que trae la lista con archivos, la descarga de estos, el upload y tambien agregue una busqueda.... bueno el problema esta en el momento en que deseo subir un archivo (esta bd solo acepta archivos desde mi pc con un input type=file) pero yo quiero que me guarde el codigo de fuente de un valor determinado como $contenido que es un HTML ... los archivos....

la bd.
Código HTML:
CREATE TABLE archivos( 
    id int not null auto_increment primary key,
    nombre varchar(50),
    titulo varchar(50),
    contenido mediumblob,
    tipo varchar(50));
index.html (upload con form)
Código HTML:
<form name="upload" enctype="multipart/form-data" action="guardar_archivo.php" method="post" onsubmit="return chkform()">
Descripción <input type="text" name="titulo" size="30">
Cliente <input type="text" name="cliente" size="30">
Ubicación <input type="file" name="archivito">
<input type="submit" value="Enviar archivo">
</form> 
dbconnect.inc.php (conexion a bd)
Código HTML:
<?
$servidor="localhost"; 
$usuario="root"; 
$password="pass"; 
$base="tabla_bd"; 
$SQLid = mysql_connect($servidor,$usuario,$password); 
mysql_select_db($base,$SQLid); 
?> 
guardar_archivo.php (conexion a bd para subir archivos)
Código HTML:
<HTML>

<HEAD>
 <title></title>
</HEAD>

<style>
a:link     {color: #0000FF; text-decoration: underline;}
a:visited  {color: #0000FF; text-decoration: underline;}
a:hover    {color: #000088; text-decoration: none;}
</style>

<BODY topmargin="10" leftmargin="20">
<div align="right">
<img src="../../../LOGO.jpg">
</div>
<center>
<font face="Arial, Verdana" size="2" color="#000000">
<?
 require("dbconnect.inc.php");

 $archivo = $_FILES["archivito"]["tmp_name"]; 
 $tamanio = $_FILES["archivito"]["size"];
 $tipo    = $_FILES["archivito"]["type"];
 $nombre  = $_FILES["archivito"]["name"];
 $titulo  = $_POST["titulo"];
 $cliente = $_POST["cliente"];

 if ( $archivo != "none" )
 {
    $fp = fopen($archivo, "rb");
    $contenido = fread($fp, $tamanio);
    $contenido = addslashes($contenido);
    fclose($fp); 

    $qry = "INSERT INTO archivos VALUES 
            (0,'$nombre','$titulo','$cliente','$contenido','$tipo')";

    mysql_query($qry);

    if(mysql_affected_rows($SQLid) > 0)
       print "Se ha guardado el archivo en la base de datos.";
    else
       print "NO se ha podido guardar el archivo en la base de datos.";
 }
 else
    print "No se ha podido subir el archivo al servidor";
?>
</font><br><br>
 <form action="" method="post" name="guardar_archivos">
   <input type="button" name="lista" value="Ver Archivos" OnClick="javascript: top.window.self.location.href='listar_archivos.php'" style="color: #003366; background-color: #FFFFFF; font-family:verdana; font_size:xx-small">
   <input type="button" name="volver" value="Volver Atrás" OnClick="javascript:history.back()" style="color: #003366; background-color: #FFFFFF; font-family:verdana; font_size:xx-small">
 </form>
</center>
</font>
</BODY>

</HTML> 

listar_archivos.php (carga la los archivos subidos de acuerdo a ID)
Código HTML:
<HTML>

<HEAD>
 <title></title>
</HEAD>

<style>
a:link     {color: #0000FF; text-decoration: underline;}
a:visited  {color: #0000FF; text-decoration: underline;}
a:hover    {color: #000088; text-decoration: none;}
</style>

<script language="JavaScript" type="text/javascript">
<!--
function borrar()
{
pruef=window.confirm("¿Realmente desea borrar el archivo?");
return pruef;
}
</script>

<BODY topmargin="10" leftmargin="20" onload="top.busqueda.location.reload()">
<font face="Arial, Verdana" size="2" color="#000000">
<?
require("dbconnect.inc.php");

$qry = "SELECT id, nombre, titulo, cliente, tipo FROM archivos";
$res = mysql_query($qry);

while($fila = mysql_fetch_array($res))
{
print "<b><a name='$fila[titulo]'>Factura Nº:</a></b> &nbsp; &nbsp; &nbsp; $fila[titulo]
<br>
<b>Tipo Archivo:</b> &nbsp; $fila[nombre] $fila[cliente] ($fila[tipo])
<br>
<form OnSubmit=\"return borrar()\" name='listas' action='borrar_archivo.php?id=$fila[id]' method='POST'>
 <input type='hidden' name='nfact' value='$fila[titulo]'>
 <input type='button' name='ver' value='Ver Archivo' OnClick=\"javascript: top.window.self.location.href='descargar_archivo.php?id=$fila[id]'\" style='color: #003366; background-color: #FFFFFF; font-family:verdana; font_size:xx-small'>&nbsp; &nbsp; 
 <input type='submit' name='delete' value='Borrar Archivo' style='color: #003366; background-color: #FFFFFF; font-family:verdana; font_size:xx-small'>
</form>
<br>
<br>";
}
?>
<br><br>
<center>
 <form action="" method="post" name="listar_archivos">
   <input type="button" name="facturas" value="Volver a Factura" OnClick="javascript: top.window.self.location.href='index.html'" style="color: #003366; background-color: #FFFFFF; font-family:verdana; font_size:xx-small">
 </form>
</center>
</font>
</BODY>

</HTML> 
descargar_archivo.php (puedo visualizar los html directamente)
Código HTML:
<?
require("dbconnect.inc.php");

 $qry = "SELECT tipo, contenido FROM archivos WHERE id=$id";
 $res = mysql_query($qry);
 $tipo = mysql_result($res, 0, "tipo");
 $contenido = mysql_result($res, 0, "contenido");

 header("Content-type: $tipo");
 print $contenido; 
?> 
borrar_archivo.php (lo cree de acuerdo a mi bd)
Código HTML:
<HTML>

<HEAD>
 <title></title>
</HEAD>

<style>
a:link     {color: #0000FF; text-decoration: underline;}
a:visited  {color: #0000FF; text-decoration: underline;}
a:hover    {color: #000088; text-decoration: none;}
</style>

<META http-equiv="refresh" content="7;URL=listar_archivos.php">

<BODY topmargin="10" leftmargin="20" onload="top.busqueda.location.reload()">
<font face="Arial, Verdana" size="2" color="#000000">
<?
require("dbconnect.inc.php");

 $qry = "DELETE FROM archivos where id=$id";
 $res = mysql_query($qry);
 $del = "descargar_archivo.php?id=$id";
 $unl = delfile($del);
  
function delfile($del){ 
   foreach(glob($del) as $fn) { 
       unlink($fn); 
   } 
}

echo "<br><br>";

if (file_exists($del)) {
   echo "Error mientras se intentaba borrar el archivo $del.";
   }
else {
   echo "<center><b>La Factura Nº $nfact ha sido borrado correctamente.</b></center>";
   }
?>
<center>
 <form action="listar_archivos.php" method="post" name="actualizar_lista">
   <input type="submit" name="continuar" value="Continuar" style="color: #003366; background-color: #FFFFFF; font-family:verdana; font_size:xx-small">
 </form>
</center>
</font>
</BODY>

</HTML> 
busqueda.php (es uno de los 2 frames de un html, el otro es listar_archivos.php)
Código HTML:
<HTML>

<HEAD>
 <title></title>
</HEAD>

<script language="JavaScript">
function sendIt(fileName) {
if (fileName != "") {
parent.lista.location.href=fileName
}
}
</script>

<style>
a:link     {color: #0000FF; text-decoration: underline;}
a:visited  {color: #0000FF; text-decoration: underline;}
a:hover    {color: #000088; text-decoration: none;}
</style>

<BODY topmargin="10" leftmargin="20">
<div align="right">
<img src="../../../LOGO.jpg">
</div>
<font face="Arial, Verdana" size="2" color="#000000">
<center>
<?
require("dbconnect.inc.php");

$qry = "SELECT id, nombre, titulo, cliente, tipo FROM archivos";
$res = mysql_query($qry);

echo "
<form name='busqueda' action='' method='POST'>
 <select name=buscar onChange='sendIt(this.options[selectedIndex].value)' style='color: #003366; background-color: #FFFFFF; font-family:verdana; font_size:xx-small'>
  <option SELECTED>SELECCIONE EL NUMERO DE FACTURA</option>
  <OPTGROUP>";
while($fila = mysql_fetch_array($res))
{
print "<option value=\"listar_archivos.php#$fila[titulo]\">Factura Nº $fila[titulo] de $fila[cliente]</option>
";
}
echo " </select>
</form>
<br>
<br>";
?>
</center>
</font>
</BODY>

</HTML> 

Bueno ahí estan los codigos de lo que tengo, lo cual me funciona de maravilla... el problema esta en que no cumple los requisitos que necesito, como les digo he tratado lo imposible (recoger directamente los valores de cada input en la bd) pero de esa forma no puedo crear los php listar_archivos, borrar_archivo.php, busqueda.php
__________________
Adios ...!!!!