Foros del Web » Programando para Internet » PHP »

upload de archivos

Estas en el tema de upload de archivos en el foro de PHP en Foros del Web. poa favor ayudeme con esta como puedo subir archivos a un directorio mediante una pagina web php el almacenar en el servidor...
  #1 (permalink)  
Antiguo 08/07/2005, 11:26
 
Fecha de Ingreso: mayo-2005
Mensajes: 60
Antigüedad: 18 años, 11 meses
Puntos: 0
Pregunta upload de archivos

poa favor ayudeme con esta como puedo subir archivos a un directorio mediante una pagina web php el almacenar en el servidor
  #2 (permalink)  
Antiguo 08/07/2005, 13:52
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
trans.php
Código HTML:
<html>
<head>
<title>Transferencia de archivos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="estilo.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#F1F3F5">
<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 Kbytes-->
<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 align="center"> 
          <INPUT name="enviar" type="submit" class="t_n" value="Aceptar">
      </FORM></td></tr></table>
</body>
</html> 
script.php
Código PHP:
<? session_start(); ?>
<html>
<head>
<title>Transferencia de archivo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="estilo.css" rel="stylesheet" type="text/css">
</head>
<body  class="t_b">
<?php
$nombre 
$_FILES["archivo"]["name"];
$temporal $_FILES["archivo"]["tmp_name"];
$size $_FILES["archivo"]["size"];
$lim_tamano "500000"#500k maximo
$folder "files/"#cambia el nombre de la carpeta aqui
if ($size<=$lim_tamano){

if(!
move_uploaded_file($temporal,$folder.$nombre))  {
     echo 
"<div align='center' class='titulo'>No ha podido transferirse el archivo $archivo_name</div>";
     echo 
"<div align='center'>su tamaño no puede exceder de $lim_tamano bytes</div>";
     echo 
"<p></p>";
     echo 
"<p></p>";
     echo 
"<table align='center'><td><form name='form1' method='post' action='index.php?accion=block'>
                    <input type='button' name='Button' class='t_n' value='Close' onClick='self.close();return false'>

  </form></td></table>"
;    
}
else{
     echo 
"<div align='center' class='titulo'>Se ha transferido el archivo $archivo_name</div>";
     echo 
"<p></p>";
     echo 
"<p></p>";
     echo 
"<table align='center'><td><form name='form1' method='post' action='index.php?accion=block'>
<input type='button' name='Button' class='t_n' value='Close' onClick='self.close();return false'>  </form></td></table>"
;
$ruta "$folder$nombre";


       global 
$idAuth;
       
$hostname "localhost";
       
$database "BD";
       
$username "root";
       
$password "";
       
$coneccion mysql_pconnect($hostname$username$password) or die(mysql_error());
         
$insertSQL "INSERT INTO files (idUsuario, Ruta, Nombre) VALUES ('$idAuth', '$ruta', '$nombre')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die('ERROR, please contact: <a href="mailto:[email protected]">[email protected]</a>');
    }
    }
?> 
</body>
</html>
mostrar.php
Código PHP:
<? session_start(); ?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="estilo.css" rel="stylesheet" type="text/css">
</head>

<body class="t_b">
<p class="subtitulo">Descarga de archivos</p>
<?php
if(isset($idAuth)) {
global 
$idAuth;
global 
$idRuta;
    
// you may have to modify login information for your database server:
    
$conexion=mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD");
    
mysql_select_db("BD") or die ("no se ha podido seleccionar la BD");
    
$sql "SELECT * FROM files WHERE idUsuario='$idAuth'"//.$idUsuario;
    
$consulta mysql_query($sql,$conexion);
    
/*$datos = mysql_result($consulta,0,"Ruta"); //or die('ERROR, please contact: <a href="mailto:[email protected]">[email protected]</a>');
    $datos2 = mysql_result($consulta,0,"Nombre") or die('ERROR, please contact: <a href="mailto:[email protected]">[email protected]</a>');
    //echo $datos;
    //echo $datos2;*/
    
while($datos mysql_fetch_array($consulta)){
    echo 
"<p><li><a href='".$datos["Ruta"]."' class='t_b'>".$datos["Nombre"]."</a></p>" ;
    }
    
/*echo "<a href='$datos' class='titulo'>$datos2</a>" ;*/
    
}
?> </body>
</html>
modificalo a gusto, esto esta trabajando con sesiones de usuario y otras variables como idauth, sacalas


saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #3 (permalink)  
Antiguo 09/07/2005, 02:59
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Igual podrás encontrar más scripts si buscas en el foro, las FAQ parece plantean el tema... en www.hotscripts.com si quieres algo ya hecho... y si quieres entenderlo ve a www.php.net/features.file-upload

Quizá te sirva:
http://www.forosdelweb.com/f18/upload-script-que-no-anda-285066/
http://www.forosdelweb.com/f18/subir-fotos-carpeta-mediante-formulario-281287/

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 09/07/2005, 03:31
Jep
 
Fecha de Ingreso: febrero-2005
Mensajes: 42
Antigüedad: 19 años, 2 meses
Puntos: 0
Aqui va un tutorial donde aprendi yo.
http://www.forosdelweb.com/showthrea...hreadid=112025
Muy bien explicado y detallado.!
  #5 (permalink)  
Antiguo 10/07/2005, 13:07
 
Fecha de Ingreso: septiembre-2004
Mensajes: 57
Antigüedad: 19 años, 7 meses
Puntos: 0
Y donde ban los 2 script

Y donde ban los script me digeron que uno tiene que ir detro de la carpeta donde se almacenaran lo archicos
podeis resolver mi duda???
  #6 (permalink)  
Antiguo 10/07/2005, 19:25
Avatar de ~°The-Herps°~
Usuario baneado!
 
Fecha de Ingreso: septiembre-2004
Ubicación: M E X I C O
Mensajes: 498
Antigüedad: 19 años, 7 meses
Puntos: 0
Piensale tu.. esa sera tu tarea, esta regalado!!
  #7 (permalink)  
Antiguo 12/07/2005, 09:58
 
Fecha de Ingreso: julio-2005
Mensajes: 44
Antigüedad: 18 años, 9 meses
Puntos: 0
Pues yo tengo el siguiente codigo y no me da error pero tampoco me funciona:
insertar.php
<html>
<head>
<title>Administracion</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-color: #FFFFFF;
}
.Estilo1 {font-family: Arial, Helvetica, sans-serif}
.Estilo3 {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #006600;
}
.Estilo4 {color: #006600}
-->
</style></head>

<body>
<div align="center"> </div>
<table width="200" border="1" align="center">
<tr>
<td><img src="cabecera.jpg" width="808" height="80"></td>
</tr>
<tr>
<td bgcolor="#BDD1C6"><form action="subirarchivos.php" method="post" enctype="multipart/form-data">
<b>Nombre de la foto:</b>
<br>
<input type="text" name="cadenatexto" size="20" maxlength="100">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<br>
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Subir">
</form>

</tr>
</FORM>
</table>
</body>
</html>

y subirarchivos.php

<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//datos del arhivo
$nombre_archivo = $_FILES['userfile']['name'];
$tipo_archivo = $_FILES['userfile']['type'];
$tamano_archivo = $_FILES['userfile']['size'];
$nombretemp = $_FILES['userfile']['tmp_name'];

echo "Nombre: " . $nombre_archivo . "<br><br>";
echo "Tipo: " . $tipo_archivo . "<br><br>";
echo "Tamaño: " . $tamano_archivo . "<br><br>";


//compruebo si las características del archivo son las que deseo
//if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 10000000))) {
// 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>";
//}else{

if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{
//chmod ("/home/domains/inmo-simru.com/tmp/".$nombretemp, 0677);//cambiar permisos
// chmod ('/tmp/'.$nombretemp, 0677);//cambiar permisos
move_uploaded_file('/tmp/'.$nombretemp, $nombre_archivo);
}
else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
//}
?>

Alguien me puede decir donde esta el error? no me sale ningun fallo me muestra bien los datos pero no me sube el archivo al servidor.
  #8 (permalink)  
Antiguo 12/07/2005, 10:21
 
Fecha de Ingreso: junio-2005
Ubicación: Cordoba
Mensajes: 41
Antigüedad: 18 años, 10 meses
Puntos: 0
Siguiendo vuestras instrucciones y ejemplos creo q por fin he conseguido subir archivos por ftp de un cliente al servidor, pero como puedo validar q un usuario esta conectado a internet para q pueda enviar archivos, sino tengo conexion me sale muchos warning.

Desde la pagina donde tengo el formulario, podria mandar un msj sino stoy conectado a internet????

Muchas Gracias
  #9 (permalink)  
Antiguo 12/07/2005, 10:34
 
Fecha de Ingreso: junio-2005
Ubicación: Cordoba
Mensajes: 41
Antigüedad: 18 años, 10 meses
Puntos: 0
Se me olvido poner el codigo

Por ejemplo un warning q me sale es en esta instruccion
$id_ftp=ftp_connect(SERVER,PORT);

luego con la funcion isset compruebo si existe $id_ftp
pero me muestra un warning
  #10 (permalink)  
Antiguo 20/07/2005, 19:17
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... si antepones un "@" a cualquier función evitas la aparición de advertencias en caso de fallo... pero igual checa la función error_reporting(): www.php.net/error_reporting

Suerte!
PD: Ejemplo del "@":
Código PHP:
$id_ftp= @ftp_connect(SERVER,PORT); 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 06:58.