Comunidad de diseño web y desarrollo en internet online

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

Citar            
MensajeEscrito el 21 Mar 2011 12:51 am
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 correctament a la BD y no aparece ningn error, 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
uso xampp

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.
Yo creo que talvez deberia de configuar un archivo de mysql o de php
porque es curioso que archivos menores de 1 MB los suba bien, mientras que mayores a 1 MB no.
Gracias por sus respuestas.
SAludos


<html>
<head>
<title>Subir archivo a mysql</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');
$content = fread($fp, $fileSize);
$content = addslashes($content);
fclose($fp);

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>

Por diegex2005

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Mar 2011 03:56 am
Lo que yo haría, sería no guardar la imagen en la base de datos, sino usar move_upload, para subirlo al ftp,ya que si bien con unas cuantas fotos puede funcionar, con mil fotos, o 20 mil fotos en una base de datos, empezaría a haber problemas.
Es más barato el espacio de un ftp al de una base de datos, al menos eso creo, corrijanme si no estoy en lo correcto

Podrías el campo foto, pasarlo a varchar, y guardar la ruta de la foto, en vez de la foto, y con move_upload,y las funciones php para subir archivos, subir la foto al ftp

Espero que se entienda mi propuesta xD

Por sebifrost

61 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Mar 2011 12:21 pm
Probablemente se deba a que sea donde sea que estés probando este código el servidor web tiene configurado un límite en la subida de archivos menor a 1,5 Mb.

En el php.ini busca y modifica esta entrada:

Código :

upload_max_filesize

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.