Foros del Web » Programando para Internet » PHP »

Formulario para subir imagenes no funciona

Estas en el tema de Formulario para subir imagenes no funciona en el foro de PHP en Foros del Web. Hola a todos tengo este problema y nose por que pasa e echo de todo Código PHP: <html> <head> <title>Upload</title> <link rel="STYLESHEET" type="text/css" href="estilo.css"> </head> <body> <? if(isset( ...
  #1 (permalink)  
Antiguo 31/07/2003, 09:23
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
Formulario para subir imagenes no funciona

Hola a todos tengo este problema y nose por que pasa e echo de todo

Código PHP:
<html>
<head>
<title>Upload</title>
<link rel="STYLESHEET" type="text/css" href="estilo.css">
</head>
<body>
<?
if(isset($_POST['userfile'])){ ?>
<script language="Javascript">    
  function add_smilie(code)
    {
        opener.document.REPLIER.Post.value += ' ' + code + ' ';
    }
</script>
<?

$filesize
"50000";
$pooldir"./";
$poolurl"images/";



if(!isset(
$HTTP_POST_FILES['userfile']['name'])){
   echo 
"<body bgcolor=#c0c0a0 scroll=no><center><h2>No has seleccionado ningun archivo</h2>";
   echo 
"<br><a href='javascript:history.back()'>Back</a></center></body></html>";
   exit ;
 }

if(
file_exists($pooldir."/".$HTTP_POST_FILES['userfile']['name']))
 {
   echo 
"<body bgcolor=#c0c0a0 scroll=no><center><h2>Archivo ya existe</h2>";
   echo 
"<a href=\"".$poolurl."/".$HTTP_POST_FILES['userfile']['name']."\" target=nw123>".$poolurl."/".$HTTP_POST_FILES['userfile']['name']."</a>";
   echo 
"<br><a href='javascript:history.back()'>Back</a></center></body></html>";
   exit ;
 }

if((
$HTTP_POST_FILES['userfile']['size']!="") && ($_FILES['userfile']['size']>$filesize))
{
   print 
"<body bgcolor=#c0c0a0 scroll=no><center><h2>Archivo demaciado grande</h2>";
   print 
"<a href='javascript:history.back()'>Back</a></center></body></html>";
   exit ;
}

if((
$HTTP_POST_FILES['userfile']['type']!="image/gif") && ($_FILES['userfile']['type']!="image/jpg"))
{
   print 
"<body bgcolor=#c0c0a0 scroll=no><center><h2>Solo se pueden subir archivos JPG y GIF</h2>";
   print 
"<a href='javascript:history.back()'>Back</a></center></body></html>";
   exit ;
}


@
copy($file$pooldir."/".$HTTP_POST_FILES['userfile']['name']) or die("Archivo nose pudo copiar al servidor");

}

else{ 
?>
<script language="Javascript">
var extencion = "JPG and GIF";
    function checkForm(thisform){
       if(thisform.file.value == "" || thisform.file.value == null) {
          alert("Por favor seleccione algun archivo para subir");
          thisform.file.focus();
          thisform.file.select();
          return false;
      } else {
         validformFile = /(.jpg|.JPG|.gif|.GIF)$/;
          if(!validformFile.test(thisform.file.value)){
              alert("Solo "+extencion+" se pueden subir");
               thisform.file.focus();
              thisform.file.select();
              return false;
          }
      }
     return true;
    }
</script>        
<br>
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#888888" bgcolor="#214457" width="100%">
  <tr>
    <td width="85%"><center>
    <table border="0" cellpadding="0" cellspacing="0" bgcolor ="#214457" width="100%">
        <tr>
          <td width="90%">
<form name="form1" method="post" action="upload.php" onSubmit="return checkForm(this)">
Archivo: <br><br>
<input type="file" name="userfile"><br>
<input type="submit" value="Upload" ><br>(solo se pueden subir archivos con extencion JPG y GIF)
</form>
</td></tr> <? ?>
</table>
</body>
</html>
cuando subo el archivo me aparece esto

No has seleccionado ningun archivo

la configuracion de php.ini en la session upload
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = C:\temp

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

la directiva
upload_tmp_dir = C:\temp
y tambien la e puesto haci
upload_tmp_dir = C:/temp

pero sigo sin encontrar el problema
cuando elimina la linea
Código PHP:
if(!isset($HTTP_POST_FILES['userfile']['name'])){
   echo 
"<body bgcolor=#c0c0a0 scroll=no><center><h2>No has seleccionado ningun archivo</h2>";
   echo 
"<br><a href='javascript:history.back()'>Back</a></center></body></html>";
   exit ;
 } 
me aparace el error que sigue
Archivo ya existe

tengo php 4.3.3RC1
e probado tambien con las variables $_FILES pero tampoco nada



Salu2

Última edición por kech; 31/07/2003 a las 09:52
  #2 (permalink)  
Antiguo 31/07/2003, 09:59
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
prueba este,,,, seguro que te funciona y lo entienes

fichero upl2.php
Código PHP:
<?
// 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");
///////////////////////////////////////
$extensiones=array("html","php");
/////////////////
// $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="c:/Apache/htdocs/upload";
$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 y hasta pronto. <p>";
  echo 
"Nombre: $nombre <p>";
  echo 
"Tamaño: $tamanio <p>";
  echo 
"Tipo: $tipo";
 }
else { echo 
"Error al subir el archivo, demasiado grande, tamaño maximo 1,4 megas."; }
?>


fichero upload.html.... el formulario
Código PHP:
El archivo tiene que ser menor de 1,4 megas.
<
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

modifica como quieras....;)
recuerda php superior a 4.2
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 31/07/2003, 12:13
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
No sé si esta bien lo que te puso nuevo, pero tu problema principal es este.

enctype="multipart/form-data"

Para subir archivos, debes indicar ese atributo en el form.

Saludos

Última edición por biblio; 31/07/2003 a las 12:21
  #4 (permalink)  
Antiguo 31/07/2003, 13:02
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
si era ese parametro el que me faltaba

Nuevo me quedo con el tuyo es mas pequeño y modificandolo un poquito para que acepte solo jpg y gif queda perfecto jeje

gracias a los 2
salu2
  #5 (permalink)  
Antiguo 01/08/2003, 20:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
kech

.. un consejo ... No mezcles uso de arrays superglobales (caso de $_GET .. $_POST .. etc) con $HTTP_xxx_VARS ..

O usas los arrays supergloables para todo .. o bien los arrays $HTTP_xxx_VARS ...

Pero, decidete por uno (en caso de $HTTP_POST_FILE equivale en arrays superglobales a $_FILES ...).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 01/08/2003, 21:04
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
jejeje tienes razon pero ni te imaginas todo lo que pelie con este script para que funcionara y hasta pense que podia ser eso

gracias por el consejo siempre son muy bien resividos
salu2
  #7 (permalink)  
Antiguo 11/07/2005, 14:49
 
Fecha de Ingreso: julio-2005
Mensajes: 23
Antigüedad: 18 años, 9 meses
Puntos: 0
kech, cual es la pagina en la que lo usas?
  #8 (permalink)  
Antiguo 11/07/2005, 15:14
 
Fecha de Ingreso: julio-2005
Ubicación: Francia - Toulouse
Mensajes: 8
Antigüedad: 18 años, 9 meses
Puntos: 0
esto lo tienes bien:

$nombre=$HTTP_POST_FILES['archivo']['name'];
$tamanio=$HTTP_POST_FILES['archivo']['size'];
$tipo=$HTTP_POST_FILES['archivo']['type'];


te falta en el form lo sigueinte:
<form action="" enctype="multipart/form-data"> como dicen arriba, un saludo desde francia.

Max

http://www.aircostcontrol.com
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 23:13.