Foros del Web » Programando para Internet » PHP »

upload files

Estas en el tema de upload files en el foro de PHP en Foros del Web. Hola a todos, miren tengo el sgte problema tengo este script para subir archivos upload.html Código HTML: <table align= "center" > <tr> <td height= "100" ...
  #1 (permalink)  
Antiguo 12/05/2005, 08:46
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
De acuerdo upload files

Hola a todos, miren tengo el sgte problema tengo este script para subir archivos


upload.html
Código HTML:
<table align="center">
    <tr>
      <td height="100"> 
        <FORM ENCTYPE="multipart/form-data" ACTION="script.php" METHOD="post"> 

<!-- # con este input "oculto" establecemos el limite máximo
# del tamaño del fichero a transferir. En este ejemplo 500.000 bytes-->
<INPUT type="hidden" name="lim_tamano" value="500000"> 

    <p><span class="t_b">Archivo a transferir</span><br> 

      <INPUT name="archivo" type="file" class="t_n">
    </p> 

<p>
      <INPUT name="enviar" type="submit" class="t_n" value="Aceptar">
    </p>

</FORM></td></tr></table> 


sending.php
Código PHP:
<?

if ($archivo != "files" AND $archivo_size != 
                                   
AND $archivo_size<=$lim_tamano){
        
    if (
copy ($archivo$archivo_name)) {
      echo 
"<div align='center'><h2>Se ha transferido el archivo $archivo_name</h2></div>";
      echo 
"<div align='center'><br>Su tamaño es: $archivo_size bytes<br></div>";
      echo 
"<div align='center'><br>El fichero es tipo: $archivo_type <br></div>";
      echo 
"<table align='center'><td><form name='form1' method='post' action='index.php?accion=block'>
    <input name='Submit' type='submit' class='t_n' value='Volver'>
  </form></td></table>"
;
               }
}else{
    echo 
"<div align='center'><h2>No ha podido transferirse el fichero</h2></div>";
    echo 
"<div align='center'><h3>su tamaño no puede exceder de $lim_tamano bytes</h2></div>";
    echo 
"<table align='center'><td><form name='form1' method='post' action='index.php?accion=block'>
    <input name='Submit' type='submit' class='t_n' value='Volver'>
  </form></td></table>"
;
}
 
?>
El problema es que me lo guarda en el directoria www o httpdocs (como quieran llamarlo) y ademas necesito guardar el directorio en la BD para despues llamarlo nuevamente (importante creo que es que es para una pagina con varios usuarios y que cada usuario administre sus propios archivos)

ayudenme plis

salu2
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #2 (permalink)  
Antiguo 12/05/2005, 10:17
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Si con esta linea funciona:
if (copy ($archivo, $archivo_name))

Agregale al $archivo_name la ruta donde quedara ejemplo:
$folder = "image/";
if (copy ($archivo, $folder.$archivo_name))

Alli llevara una ruta especifica y recuerda que la carpeta donde se ingresaran las imagenes debe tener permisos 0677 o similar.
  #3 (permalink)  
Antiguo 12/05/2005, 10:19
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
como hago eso de los permisos?????
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #4 (permalink)  
Antiguo 12/05/2005, 10:24
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Tienes 2 opciones:
1- Si tu creas un directorio con php entonces despues de crearlo asignale el permiso con:
chmod($foldernombre,0677);

2- Si el archivo lo tiene ya creado tu y lo subiste por ftp entonces con el programa ftp asignale los permisos, todos los programas tienen para asignar los permisos a las carpetas.
  #5 (permalink)  
Antiguo 12/05/2005, 10:25
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
y son cualquier tipo de archivos, imagenes, word, excel


salu2
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #6 (permalink)  
Antiguo 12/05/2005, 10:27
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Si tu script permite subir cualquier archivo entonces no tendras problema, pero los permisos son para la carpeta donde se subiran las imagenes ya que dices que se te ponen en www:
www
www/imagen.jpg #esta imagen se subio aqui con tu script

www/
www/carpeta #esta carpeta tiene permiso 0677
www/carpeta/image.jpg # aqui se ingreso si colocas como ruta esa carpeta.
  #7 (permalink)  
Antiguo 12/05/2005, 10:31
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
lo de los permisos quedo claro pero no funciono la ayuda para el folder :(

salu2
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #8 (permalink)  
Antiguo 12/05/2005, 10:37
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Información

prueba con este script:
Código PHP:
<?php
$nombre 
$_FILES["archivo"]["name"];
$temporal $_FILES["archivo"]["tmp_name"];
$size $_FILES["archivo"]["size"];
$lim_tamano "200000"#200k maximo
$folder "carpeta/"#cambia el nombre de la carpeta aqui
if ($size<=$lim_tamano){
 if(!
move_uploaded_file($temporal,$folder.$nombre)){
     echo 
"no se subio.";    
 }
 else{
     echo 
"se subio correctamente";
 }
}
?>
  #9 (permalink)  
Antiguo 12/05/2005, 10:52
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
grande maestro :)

y ahora como hago para guardar el path en la BD :D
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #10 (permalink)  
Antiguo 12/05/2005, 10:57
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Guarda:
$ruta = $folder.$nombre;

y $ruta es lo que metes a la base de datos.
  #11 (permalink)  
Antiguo 12/05/2005, 10:59
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
vamos a intertar te habiso
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #12 (permalink)  
Antiguo 12/05/2005, 11:53
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
hice esta funcion para insertar la ruta en BD

Código PHP:
<? require_once('db_mysql.php'); ?>
Código PHP:
$ruta $folder.$nombre;
    
    global 
$idRuta;
    
$db = New DB_SQL;
    if (isset(
$idRuta) && $idRuta != '')
        {
        
$stmt "INSERT INTO files (idUsuario, Ruta, texto) VALUES ('$idAuth', '$ruta')";
        }
        
$db->query($stmt); 
y me dice:

Notice: Undefined variable: stmt in c:\archivos de programa\easyphp1-8\www\meuno2\script.php on line 48


ayuda pleasu
salu2
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #13 (permalink)  
Antiguo 12/05/2005, 11:59
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Mira tu sql:
INSERT INTO files (idUsuario, Ruta, texto) VALUES ('$idAuth', '$ruta') tienes como tercer campo texto y no le metes valor ya que solo metes idauth y ruta y el tercer valor de texto??

Yo creoq ue seria mas simple:
<?php
$ruta = $folder.$nombre;
$sql = "INSERT INTO files (idUsuario, Ruta, texto) VALUES ('".$idAuth."', '".$ruta."','".$texto."')":
mysql_query($sql,$coneccion) or die("No se pudo ingresar el dato.");
?>

Solo debes definir el link $coneccion algo asi como:
<?php
$coneccion = mysql_connect("localhost","username","password");
mysql_select_db("basededatos",$coneccion);
?>
  #14 (permalink)  
Antiguo 12/05/2005, 12:09
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
lo de la tercera variable (texto) se me escapo :p

lo de la coneccion a la BD se supone esta en el include y funciona aunque no se que pasa

salu2
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #15 (permalink)  
Antiguo 12/05/2005, 12:56
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
Ahora hice este otro,

Código PHP:
require_once('db_mysql.php');
require_once(
'auth.php');

if (!isset(
$accion) || $accion == '')
    {
    if (isset(
$idAuth)) $accion 'home';
    else 
$accion 'portal';
    }
    if (
$accion == 'agregarRuta')
    {
    global 
$idRuta;
    
$db = New DB_SQL;
    if (isset(
$idRuta) && $idRuta != '')
        {
        
$stmt "INSERT INTO files (idUsuario, Ruta) VALUES ('$idAuth', '$ruta')";
        }
    
$db->query($stmt);
    } 
pero no me inserta nada, solo me sube el archivo, que puede ser?


salu2
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #16 (permalink)  
Antiguo 12/05/2005, 13:59
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
alguien ayudeme porfavoooooooooor
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #17 (permalink)  
Antiguo 12/05/2005, 15:26
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Es que como dije en otro post, usas una clase para esa coneccion y no todos las conocemos por eso la ayuda es tan limitada.
  #18 (permalink)  
Antiguo 12/05/2005, 15:33
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
dwaks ya estamos listos, logre hacer el path en la BD ahora lo otro esta en el otro post que se llama Path BD creo :p


te pasaste gracias

salu2
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #19 (permalink)  
Antiguo 16/06/2006, 13:09
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
jajaja despues de haberlo solucionado todo vuelvo al atauqe con el mismo script

para que recuerden y anden mirando hacia atras
Código PHP:
<?php
$nombre 
$_FILES["archivo"]["name"];
$temporal $_FILES["archivo"]["tmp_name"];
$size $_FILES["archivo"]["size"];
$lim_tamano "200000"#200k maximo
$folder "carpeta/"#cambia el nombre de la carpeta aqui
if ($size<=$lim_tamano){
 if(!
move_uploaded_file($temporal,$folder.$nombre)){
     echo 
"no se subio.";    
 }
 else{
     echo 
"se subio correctamente";
 }
}
?>
lo que necesito es cambiar el nombre del archivo, que o quede con el del usuario, lo he intentando pero me da error en
Código PHP:
 if(!move_uploaded_file($temporal,$folder.$nombre)){ 
gracias
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
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 23:39.