Foros del Web » Programando para Internet » PHP »

cargar archivos al servidor...

Estas en el tema de cargar archivos al servidor... en el foro de PHP en Foros del Web. Hola a todos: Soy novato en el uso de PHP y estoy tratando de hacer un scrip para subir archivos a una carpeta en mi ...
  #1 (permalink)  
Antiguo 11/09/2007, 16:55
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
cargar archivos al servidor...

Hola a todos:

Soy novato en el uso de PHP y estoy tratando de hacer un scrip para subir archivos a una carpeta en mi servidor host.

Hice unas pruebas de forma local y las paginas trabajan muy bien, me mueve el archivo a la carpeta a la cual le direcciono.

Ahora, lo que hice fue subir estas paginas de prueba al servidor para ver el resultado y me manda los siguientes errores:


Warning: move_uploaded_file(./pruebas/HDD_Regenerator_1.5.1.txt): failed to open stream: No such file or directory in /home/content/c/o/l/colegionl/html/administrador/subirarchivo.php on line 82

Warning: move_uploaded_file(): Unable to move '/tmp/phpX3Bhfy' to './pruebas/HDD_Regenerator_1.5.1.txt' in /home/content/c/o/l/colegionl/html/administrador/subirarchivo.php on line 82


El código que utilizo para buscar el archivo es el siguiente:

<form action="subirarchivo.php" method="post" enctype="multipart/form-data">
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar">
</form>

y el otro archivo que mueve el archivo es el siguiente:

<?php
$cadenatexto = $_POST["cadenatexto"];

$path="/temp/prueba/";

//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
echo $nombre_archivo . "<br><br>";
echo $tipo_archivo . "<br><br>";
echo $tamano_archivo . "<br><br>";
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "text") || strpos($tipo_archivo, "plain")) && ($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 .txt o .txt<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $path.$_FILES['userfile']['name'])){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>

También estuve viendo en el foro y hablan sobre algo que llaman chmod lo cual no entiendo en donde se pone o configura.

Espero y me puedan auxiliar con este problema que tengo.

Gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 11/09/2007, 16:57
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: cargar archivos al servidor...

mira el chmod son los permisos si tienes acceso al panel de admin o via ftp pues sobre la carpeta en donde subes las imagenes puedes modificar los permisos a 777 por ej...
;)
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 11/09/2007, 18:08
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: cargar archivos al servidor...

La carpeta "pruebas" existe?
Si es así, entrá con el FTP y dale permisos 0777
Si no creala y dale permisos, en general los programas de FTP tienen una opción de atributos, o propiedades donde se puede hacer fácilmente
  #4 (permalink)  
Antiguo 11/09/2007, 19:00
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Re: cargar archivos al servidor...

uan vez en el ftp ej: filezilla te posicionas sobre la carpeta y con el boton derecho haces clic sobre la misma. te dice atributos del archivo y le ponés 777 o tildas todo da igual y listo.
Si no tenés la carpeta haces lo mismo y opción crear directorio.
  #5 (permalink)  
Antiguo 12/09/2007, 09:08
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: cargar archivos al servidor...

Gracias por sus respuestas.

Ya entré al file manager, y al darle con el boton derecho sobre la carpeta, no me muestra la opcion de los atributos, el hosting es de godaddy.

Saludos.
  #6 (permalink)  
Antiguo 12/09/2007, 12:26
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Re: cargar archivos al servidor...

Hola nuevamente. los permisos chmod son para un linux, de ser asi si tu servidor es tal, entonces al menos en el file manager como es por ejemplo el del directadmin te dice abajo set permision ahi le pones el 777 tildando la carpeta.
Y si lo haces desde un cliente ftp como el filezilla ahi si desde el boton derecho los otorgas.
  #7 (permalink)  
Antiguo 12/09/2007, 16:24
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: cargar archivos al servidor...

Hola Nuevamente:

Ya entré de nuevo al file manager de godaddy, en efecto, el servidor donde tengo el host esta bajo linux, pero ya vi en toda la ventana y no me aparece nada sobre los permisos. Busqué el Filezilla que tambien me recomiendas, la pregunta es, no hay ningun problema si descargo el programa para windows? o tiene que ser para linux, yo en mi maquina de forma local uso windows2000.

Saludos.
  #8 (permalink)  
Antiguo 12/09/2007, 16:38
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: cargar archivos al servidor...

Ya descargué el FileZilla.

Ya lo configuré y le cambié el atributo a la carpeta, pero me sigue mandando el mismo error.

Que podrá ser?

Saludos.
  #9 (permalink)  
Antiguo 12/09/2007, 18:02
 
Fecha de Ingreso: agosto-2007
Mensajes: 66
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: cargar archivos al servidor...

prueba con este codigo mejor
Código HTML:
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form> 
php
Código PHP:
<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir '/var/www/uploads/';
$uploadfile $uploaddir basename($_FILES['userfile']['name']);

echo 
'<pre>';
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo 
"File is valid, and was successfully uploaded.\n";
} else {
    echo 
"Possible file upload attack!\n";
}

echo 
'Here is some more debugging info:';
print_r($_FILES);

print 
"</pre>";

?>
lo tome de aqui http://www.php.net/features.file-upload
  #10 (permalink)  
Antiguo 12/09/2007, 18:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Re: cargar archivos al servidor...

Yo subo con esto:

Código PHP:
<?
///////////////////////
// Upload de Archivos//
// akuatik 03'       //
// http://akuatik.net//
// for PHP > 4.2.x   //
///////////////////////
?>
<form method="POST" enctype="multipart/form-data" action="upl2.php">
<input type="file" name="archivo" size="20">
<input type="submit" value="Enviar" name="send">
<input type="reset" value="Borrar" name="erase">
</form>
Código PHP:
<?
///////////////////////
// Upload de Archivos//
// akuatik 03'       //
// http://akuatik.net//
// for PHP > 4.2.x   //
///////////////////////

// Configuración //
///////////////////
// $extensiones=array("1ªext","2ªext","....");
// Aqui debes poner las extensiones que NO admitas
// por ejemplo si no quieres admitir .html , .exe ni .gif :
// $extensiones=array("html","exe","gif");
///////////////////////////////////////
$extensiones=array("php","html");
/////////////////
// $path="/ruta/ta/ta";
// Si el server rula bajo LinuX toda la ruta completa /var/etc/..
// Si rulas bajo WindoWs C:/midirectorioroot/tal..
// Nota: Sin el último / ej: C:/miweb NO C:/miweb/
////////////////
$path="listas/";
$nombre=$HTTP_POST_FILES['archivo']['name'];
$tamanio=$HTTP_POST_FILES['archivo']['size'];
$tipo=$HTTP_POST_FILES['archivo']['type'];
$var explode(".","$nombre");
$num count($extensiones);
$valor $num-1;
for(
$i=0$i<=$valor$i++) {
    if(
$extensiones[$i] == $var[1]) {
    echo 
"Tipo de Archivo no admitido";
    exit;
    }
}
if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name']))
 {
  
copy($HTTP_POST_FILES['archivo']['tmp_name'], "$path/$nombre");
  echo 
"El archivo se ha subido correctamente al servidor, muchas gracias <p>";
  echo 
"Nombre: $nombre <p>";
  echo 
"Tamaño: $tamanio <p>";
  echo 
"Tipo: $tipo";
 }
else { echo 
"Error al subir el archivo"; }
?>
y va bárbaro.
Claro que dandole los permisos al file donde va los archivos.
  #11 (permalink)  
Antiguo 13/09/2007, 09:28
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: cargar archivos al servidor...

Hola mvlsistemas:

Gracias por el codigo, ya lo probé de forma local y si trabaja muy bien, pero al subirlo a mi servidor me sigue marcando error:

Cita:
Warning: copy(/pruebas/CrackDown.txt): failed to open stream: No such file or directory in /home/content/c/o/l/colegionl/html/administrador/subirarchivo.php on line 79
es la linea que tiene:

c
Cita:
opy($HTTP_POST_FILES['archivo']['tmp_name'], "$path$nombre");
No sé realmente que es lo q
  #12 (permalink)  
Antiguo 13/09/2007, 09:30
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: cargar archivos al servidor...

Perdón, envíe el mensaje si terminar...

No sé realmente que es lo que le falte o es que sea un problema con mi host.

Saludos.
  #13 (permalink)  
Antiguo 13/09/2007, 10:45
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: cargar archivos al servidor...

Ya quedó resuelto!

No tenía completa la ruta de acceso a la carpeta.

Gracias por todo.

Saludos.
  #14 (permalink)  
Antiguo 13/09/2007, 14:38
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Re: cargar archivos al servidor...

Código PHP:
$path="listas/"
ahi está tal vez tu problema, disculpa te lo mande con el ruteo mio.

que bueno que funcionó, los crédios son seguramente para // http://akuatik.net//
  #15 (permalink)  
Antiguo 14/09/2007, 12:06
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: cargar archivos al servidor...

Hola mvlsistemas:

El path que me mandaste si lo cambié por el mio, sólo que iba incompleto.

Gracias por todo.

Saludos.
  #16 (permalink)  
Antiguo 14/09/2007, 14:16
 
Fecha de Ingreso: agosto-2007
Ubicación: Mexico
Mensajes: 55
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: cargar archivos al servidor...

si te interesa en algun momento guardar los archivos en una base de datos prueba este tutorial

http://blog.deliriumlabs.net/?p=13
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:15.