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>