PUBLICIDAD
Wilas

Ayuda con PHP...Subir imagenes

DieX

ANÓNIMO
Quiero guardar las imagenes en una carptea, y la direccion en la base de datos, para despues nada mas hacer la referencia, solo que no me esta funcando...

Tengo en el formulario lo siguiente


<input name="userfile" type="file" class="cajatexto1" size="16" style="float: left">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">

Ahi se adjunta la imagen

En el php lo siguiente

PHP:
<?
$nombre_archivo = $_FILES["userfile"]["tmp_name"];  
$tipo_archivo = $HTTP_POST_FILES["userfile"]["type"];  
$tamano_archivo = $HTTP_POST_FILES["userfile"]["size"];  


//compruebo si las características del archivo son las que deseo  

if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && (    $tamano_archivo < 100000))) 
{  
    echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>"; 
?> 
    <script language="javascript"> 
        setTimeout("url()",3000); 
        function url() 
        { 
        window.history.back(); 
        } 
    </script>            
<?     
} 
else 
{  
    $nom_img= $nombre_archivo; 
     
    $directorio = 'Recursos/'; 

    if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio . "/" . $nom_img)) 
    {  
            $diaactual= date("d");  
        $mesactual= date("m");  
        $anoactual= date("Y"); 
        $fecha= $diaactual . "/" . $mesactual . "/" . $anoactual; 
         
        //NOS CONECTAMOS A LA BASE DE DATOS 

     $connection = mysql_connect("localhost","root","root")
        or die ("No se pudo conectar al servidor");
      $db = mysql_select_db("tremedal",$connection)
        or die ("No se pudo seleccionar la base de datos");

                         
$query = "INSERT INTO imagen (titulo,descripcion, imagen) VALUES ( $_REQUEST[titulo]', '$_REQUEST[descripcion]', '$nom_img')";



        $result=mysql_db_query($database,$query,$link); 
         
        if(mysql_affected_rows($link)) 
        {  
            echo "Imagen ingresada correctamente";  
             
        } else  
        {  
            echo "Error introduciendo la Imagen";  
        } /* Cierre del else */  




    } 
    else 
    { 
        echo "error al subir la foto"; 
    } 
}

Pero no sirve, alguien que me ayude a corregie que falla, y/o me brinde un ejemplo mejor pura vida
 
Última edición:
Bueno ya lo pude solucionar, voy a ponerlo aqui por si alguien lo necesita en el futuro,


PHP:
    <?php 

srand(time());
$i = rand(0,25);



$ruta="./Recursos/"; //Cambiar este por su ruta

$uploadfile_temporal=$_FILES['imagen']['tmp_name']; 

$uploadfile_nombre=$ruta.$i.$_FILES['imagen']['name']; 

if (is_uploaded_file($uploadfile_temporal)) 
{ 
    move_uploaded_file($uploadfile_temporal,$uploadfile_nombre); 


     $connection = mysql_connect("localhost","root","root")
        or die ("No se pudo conectar al servidor");
      $db = mysql_select_db("tremedal",$connection)
        or die ("No se pudo seleccionar la base de datos");

$ruta ="Recursos/".$i.$_FILES['imagen']['name'];

      $query = "INSERT INTO imagen (titulo,descripcion, imagen) VALUES ( '$_REQUEST[titulo]', '$_REQUEST[descripcion]', '$ruta')"; 

      $result = mysql_query($query)
        or die("La consulta falló: " . mysql_error());



$query = "SELECT * FROM imagen"; 

 $result = mysql_query($query)
        or die("La consulta falló: " . mysql_error());


      echo "<table border='1'>";
      echo "<tr>";
      echo "<th>Imagen</th>";
      echo "</tr>";

	
            while ($row = mysql_fetch_array($result))
      {



$medio = "<img  src= \" ".$inicio.$row['imagen']."\" width=\"200\" height=\"200\" \/>";

echo "<tr>";
        echo "<td>", $medio, "</td>";
        echo "</tr>";





      }

      echo "</TABLE>";


      mysql_close($connection); 




} 
else 
{ 
echo "error"; 
} 


?>

JavaScript para validar que el archivo sea valido
Code:
function imagen(archivo) { 

   extensiones_permitidas = new Array(".gif", ".jpg", ".bmp"); //Agregar aqui las extensiiones validas
   error = ""; 
   if (!archivo) { 
      //Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario 
      	error = "No has seleccionado ningúna imagen"; 
   }else{ 
   
      //recupero la extensión de este nombre de archivo 
      extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase(); 
      
	  
	  
      //compruebo si la extensión está entre las permitidas 
      permitida = false; 
      for (var i = 0; i < extensiones_permitidas.length; i++) { 
         if (extensiones_permitidas[i] == extension) { 
         permitida = true; 
         break; 
         } 
      } 
      if (!permitida) { 
	       error = "Comprueba la extensión del la imagen. \nSólo se pueden subir archivos con extensiones: " + extensiones_permitidas.join();
				  
      	}else{ 
          
         //Todo bien 
         return true; 
      	} 
   } 
   
          alert (error);
		  return false; 
}

Por ultimo el formulario HTML
HTML:
<form name= "formImagen" action="insertimagen.php" method="post" accept-charset="utf-8"  enctype="multipart/form-data"> 
			<table width="200"> 
    <tr> 
        <td> 
        	Titulo:
        </td> 
        <td> 
        	<input type="text" name="titulo"> 
        </td> 
    </tr> 
    <tr> 
        <td> 
         Descripcion:
        </td> 
        <td> 
        	<input type="text"  name="descripcion"> 
        </td> 
    </tr> 
 
		
 
		    <tr> 
        <td> 
<input name="imagen" type="file"  size="40" style="float: left"> 
<input type="hidden" name="MAX_FILE_SIZE" value="100000"> 
        </td> 
								        <td> 
<input type="button" onclick="validarImagen(this.form)" value=" Subir imagen ">  
		        </td> 
		</tr> 
	</table> 
		
</form>
 
#1 en FACTURA ELECTRÓNICA
Evite multas y sanciones: Presentamos sus declaraciones del IVA D104, de ALQUILERES D125, así como su renta D101 desde $20 al mes.
Active su PLAN PREPAGO por $9.99 y timbre hasta 50 documentos electrónicos. Sin mensualidades, ni anualidades con el sistema líder en el país.
Fondos de Pantalla
Arriba Pie