Tengo un problemmilla, uso este escript para subir archivos al servidor
Código PHP:
if ($_GET['action']==graba){
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción:
// No se comprueba aqui si se ha subido correctamente.
if (empty($_FILES['archivo']['name']) or empty($titulo) or empty($categoria) ){
header("location: $PHP_SELF?proceso=Falta ingresar datos"); //o como se llame el formulario ..
exit;
}
// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];
$fecha=date("Y-m-d");
$usuario=1;
//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO archivos (titulo, archivo,tipo,peso,fecha,idcategorias,idusuarios) VALUES ('$titulo', '$binario_nombre', '$binario_tipo','$binario_peso','$fecha','$categoria','$usuario')";
mysql_query($consulta_insertar,$cn) or die("No se pudo insertar los datos en la base de datos.");
header("location: $PHP_SELF?proceso=Archivo insertado"); // si ha ido todo bien
exit;
}
Código PHP:
include("conexion.php");
$extenciones = array("application/msword"=>"doc","application/pdf"=>"pdf","image/pjpeg"=>"jpg","image/gif"=>"gif","application/vnd.ms-excel"=>"xls");
$sqldescarga = "SELECT archivo,tipo,peso,titulo FROM archivos WHERE idarchivos='".$_GET['id']."'";
$rsdescarga = mysql_query($sqldescarga,$cn);
$file = mysql_result($rsdescarga,0,"archivo");
$type = mysql_result($rsdescarga,0,"tipo");
$peso = mysql_result($rsdescarga,0,"peso");
$nombre = mysql_result($rsdescarga,0,"titulo");
header('Content-type: '.$type);
header('Content-Transfer-Encoding: Binary');
header('Content-length: '.$peso);
header('Content-disposition: attachment; filename="'.$nombre.'.'.$extenciones[$type].'"');
echo $file;