Foros del Web » Programando para Internet » PHP »

Ayudita para subir archivos

Estas en el tema de Ayudita para subir archivos en el foro de PHP en Foros del Web. Hola, tengo bastantes dudas y estoy un poco liado, a ver si me pueden echar una mano. He realizado una web mediante html y maquetada ...
  #1 (permalink)  
Antiguo 09/07/2009, 08:43
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 0
Ayudita para subir archivos

Hola, tengo bastantes dudas y estoy un poco liado, a ver si me pueden echar una mano.

He realizado una web mediante html y maquetada con css. Una de ellas la he llamado "alumnos.php" (ya que tiene codigo php, si hay que poner .html diganmelo).

Quiero que se puedan subir archivos a mi web, pero no me funciona. Trabajo en Windows y tengo que trabajar ahí por fuerza, no puedo usar linux.

Mi formulario es el siguiente:

<form name="alumnos" action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
<input name="archivo" type="file" />
<input type="submit" name="boton" value="Enviar" />
</form>

Mi script en PHP al inicio de la página es:

<?php
$path="archivos\";
$nombre_archivo = $_FILES['userfile']['name'];
if($boton) {
if (is_uploaded_file($HTTP_POST_FILES['user_file']['tmp_name'])) {
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $path.$_FILES['userfile']['name']);
$subido = true;
}

if($subido) {
echo "El archivo subido con exito";
} else {
echo "El archivo no cumple con las reglas establecidas";
}
die();
}
?>

Pero me da error PHP y me salen errores en todas las lineas. Tampoco se sube nada a la carpeta que quiero.

He probado también, nombrando la web .html, sin poner código php y en el formulario hacer action="subir.php" y en subir.php poner el script que puse antes, pero me sale lo mismo.

Alguien me puede echar una mano.

Muchísimas gracias y un saludo.
  #2 (permalink)  
Antiguo 09/07/2009, 08:54
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayudita para subir archivos

Cual error php te da?
Código PHP:
<?php
$path
="archivos\\";
$nombre_archivo $_FILES['userfile']['name'];
$tmp_archivo $_FILES['userfile']['tmp_name']
if(
$boton) {
  if (
is_uploaded_file($tmp_archivo) {
     
move_uploaded_file($tmp_archivo$path.$nombre_archivo);
     
$subido true;
  }

  if(
$subido) {
    echo 
"El archivo subido con exito";
  } else {
    echo 
"El archivo no cumple con las reglas establecidas";
  }
die();
}
?>
  #3 (permalink)  
Antiguo 09/07/2009, 09:02
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Ayudita para subir archivos

Vale vale, es que me daba diferentes errores porque he probado de varias maneras, al final lo he solucionado cambiando todo eso por esto:


<?php
if (is_uploaded_file($_FILES['archivo'>['tmp_name'>)) {
copy($_FILES['archivo'>['tmp_name'>, 'I:/Servidor/Web/PhpProject1/archivos/'.$_FILES['archivo'>['name'>.'');
}
?>

Lo que me gustaría ahora sería que no se quedase en la página en blanco, sino que volviese a la anterior. ¿Qué debería hacer?

Un saludo y gracias.
  #4 (permalink)  
Antiguo 09/07/2009, 09:09
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayudita para subir archivos

Deberias poner un
header("Location: http://tuweb/file.php");
en lugar de
die()
  #5 (permalink)  
Antiguo 09/07/2009, 09:15
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 0
Gracias, pero al poner eso al final de mi script me sale este mensaje al subir un archivos:

Warning: Cannot modify header information

Yo he visto que en algunas webs al pasar 2 o 3 segundos te devuelven a la página anterior para subir otro archivo.

También he intentado incluir un enlace mediante html en el php pero da error.

Gracias

El error estaba en que antes no se puede enviar ningún mensaje ni nada.

Ya lo he conseguido, aunque me queda no se, quizás un poco triste.

Cita:
<?php
if (is_uploaded_file($_FILES['archivo']['tmp_name'])) {
copy($_FILES['archivo']['tmp_name'], 'I:/Servidor/Web/PhpProject1/archivos/'.$_FILES['archivo']['name'].'');
$subido = true;
}
if($subido) {
header("Location: alumnos.html");
} else {
echo "<p><strong>Error:</strong> El archivo no ha sido subido</p>";
}

?>
Si se sube con éxito simplemente se queda ahí, sin decir nada, no se, me gustaría que antes de volver saliera algún mensaje.

Un saludo.

Mensaje duplicado

Última edición por GatorV; 09/07/2009 a las 12:19
  #6 (permalink)  
Antiguo 09/07/2009, 09:28
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayudita para subir archivos

Claro perdona fue un mi error..
Si quieres utilizar header() hay que NO escribir nada antes, si no se envian los headers del paqute HTTP y te sale ese error. Entonces dos opciones:
1
Código PHP:
<?php
$path
="archivos\\";
$nombre_archivo $_FILES['userfile']['name'];
$tmp_archivo $_FILES['userfile']['tmp_name']
if(
$boton) {
  if (
is_uploaded_file($tmp_archivo) {
     
move_uploaded_file($tmp_archivo$path.$nombre_archivo);
     
$subido true;
  }

  if(
$subido) {
    
header("Location: http://tuweb/file.php?result=ok")
  } else {
    
header("Location: http://tuweb/file.php?result=ko")
  }
die();
}
?>
luego lees $_GET['result'] y alli pones la escrita que quieres poner.

2
Código PHP:
<?php
$path
="archivos\\";
$nombre_archivo $_FILES['userfile']['name'];
$tmp_archivo $_FILES['userfile']['tmp_name']
if(
$boton) {
  if (
is_uploaded_file($tmp_archivo) {
     
move_uploaded_file($tmp_archivo$path.$nombre_archivo);
     
$subido true;
  }

  if(
$subido) {
    echo 
"El archivo subido con exito";
  } else {
    echo 
"El archivo no cumple con las reglas establecidas";
  }
  echo 
"<script>";
  echo 
"setTimeout(\"redirect()\", 3000)";
  echo 
"function redirect() {
       location.href = 'http://tuweb/file.php';
  }"
;
  echo 
"</script>";
die();
}
?>
  #7 (permalink)  
Antiguo 23/11/2009, 23:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Ayudita para subir archivos

emm... mi pregunta ahora seria si para que esto funcione correctamente en el servidor necesito poner la extension .php o funcionaria con .html tambien...
porfa necesito saber si puede funkar con .html... gracias
  #8 (permalink)  
Antiguo 24/11/2009, 03:20
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayudita para subir archivos

Hola,
como que es codigo php, para ser convertido en html la extension tiene que ser php. Si tu creas ese file como html el servedor lo envia en output sin hacer el parser del file, o sea sin exeguir el php, o sea no va a funcionar. Ciao!
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 00:30.