Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/09/2006, 11:17
gazuzax
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
Validar una subida de archivo

hola progrmadores. kiero validar un upload y me da un error

tengo mi archivo formulario.php
Código PHP:
<HTML> 
<HEAD> 
<TITLE>Binario a BD</TITLE> 
</HEAD> 
<BODY> 
<?php 
if (isset($_GET['proceso'])){ 
echo 
$_GET['proceso']."<br>"


?> 
<FORM enctype="multipart/form-data" method="post" action="insertar.php">

<p>Archivo: <INPUT type="file" name="archivo" size="30"> 
<INPUT type="submit" name="submit" value="Subir archivo"> 
</p></FORM> 
</BODY> 
</HTML>
e insertar.php
Código PHP:
<?php 
include"conexion.php";

/************************************************************************/
$uploadDir 'C:\apache\htdocs\foto'//SUPONGO ESTARA BIEN MI RUTA EL EJ. TENIA '/var/www/uploads/';

$uploadFile $uploadDir $_FILES['archivo']['name'];
print 
"<pre>";
if (
move_uploaded_file($_FILES['archivo']['tmp_name'], $uploadFile))
{
    print 
"File is valid, and was successfully uploaded. ";
    print 
"Here's some more debugging info:";
    
print_r($_FILES);
}
else
{
    print 
"Possible file upload attack!  Here's some debugging info:";
    
print_r($_FILES);
}
print 
"</pre>";
/*************************************************************************/


//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'])){ 
header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. 
exit; 


//establece una conexión con la base de datos. 
//PUSE MI INCLUDE AL INICIO

// 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']; 

//insertamos los datos en la BD. 
$consulta_insertar "INSERT INTO archivos (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
header("location: listar_imagenes.php");  // si ha ido todo bien 
exit; 
?>
lo que esta entre * es de una funcion aparte para validar el upload y kiero integrarla porque si no no puedo subir mi foto, pero al ejecutarlo me da este error:
Warning: Cannot add header information - headers already sent by (output started at C:\apache\htdocs\foto\insertar.php:8) in C:\apache\htdocs\foto\insertar.php on line 27

como puedo solucionarlo? PD:estoy usando phptriad 2.11.