Foros del Web » Programando para Internet » PHP »

Error cuando subo una imagen de 1 MB o mayor a traves de PHP a Mysql

Estas en el tema de Error cuando subo una imagen de 1 MB o mayor a traves de PHP a Mysql en el foro de PHP en Foros del Web. Buenas tardes, soy nuevo en este foro, soy aficionado a la informatica y llevo como un mes haciendo un diseño de una web dinamica. Bien, ...
  #1 (permalink)  
Antiguo 19/03/2011, 12:14
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Error cuando subo una imagen de 1 MB o mayor a traves de PHP a Mysql

Buenas tardes, soy nuevo en este foro, soy aficionado a la informatica y llevo como un mes haciendo un diseño de una web dinamica.

Bien, cuando subo una imagen a mysql de poco peso como (300KB) se sube correctamente a la BD, pero cuando subo una foto de 1.5 MB o algo parecido, me aparecen estos 2 errores

Warning: fread(): supplied argument is not a valid stream resource in C:\xampp\htdocs\curso1\subir.php on line 26

Warning: fclose(): supplied argument is not a valid stream resource in C:\xampp\htdocs\curso1\subir.php on line 31



Tengo una tabla en Mysql
donde para guardar el contenido de la imagen esta en tipo Medium BLOB


Y no se porque ocurren esos errores, espero que me puedan apoyar.
Les adjunto el codigo de subir.php
El archivo config.php es simple y no creo que hay este el error.
Gracias por sus respuestas.
SAludos


<html>
<head>
<title>Upload File To MySQL Database</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.box {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
border: 1px solid #000000;
}
-->
</style>
</head>

<body>
<?
if(isset($_POST['upload'])) //Si se ha hecho click en el boton upload
{ //entonces
$fileName = $_FILES['userfile']['name']; //variable $filename es al elemento del arreglo $_FILES['userfile']['name']
$tmpName = $_FILES['userfile']['tmp_name']; //ahora para $tmpname
$fileSize = $_FILES['userfile']['size']; //con el tamano
$fileType = $_FILES['userfile']['type']; //con el tipo

$fp = fopen($tmpName, 'r'); //fopen abre un archivo o URL, aca //$tmpname y 'r' es de modo solo lectura Asocia un recurso nominado //$tmpname a un flujo si tiene exito devuelve un recurso //de puntero a archivo , si no tiene exito envia false
$content = fread($fp, $fileSize); //lectura de un fichero en //modo binario seguro, lee desde $filesize bytes desde el puntero al fichero //relacionado por $fp
//Devuelve la cadena leida o false en caso de error


$content = addslashes($content); //addslashes: devuelve //una cadena con barras invertidas delante de los caracteres que necesitan //escaparse en consultas a bases de datos
//los caracteres q se escapan son ' " / y byte NULL

fclose($fp); //cierra un puntero a un archivo abierto, el //archivo apuntado por $fp es cerrado

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}


include 'config.php';
$connection=mysql_connect("localhost","root","pass wor")
or die("Error conectando a la base de datos");
$db=mysql_select_db("basededatos",$connection)
or die ("Error seleccionando la base de datos");

$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed');


echo "<br>File $fileName uploaded<br>";
}
?>
<form action="" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246"><input type="hidden"
name="MAX_FILE_SIZE" value="2000000"><input name="userfile"
type="file" class="box" id="userfile">
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 19/03/2011, 12:27
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 6 meses
Puntos: 88
Respuesta: Error cuando subo una imagen de 1 MB o mayor a traves de PHP a Mysql

checa fopen y fread en el manual de php.

lo que debe de estar pasando es que hay un error al abrir el fichero.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: mayor, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:25.