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.