Foros del Web » Programando para Internet » PHP »

Problema en carga de Imagenes al servidor!!!

Estas en el tema de Problema en carga de Imagenes al servidor!!! en el foro de PHP en Foros del Web. Espero no se aburran con mi problema y prueben en sus servidores y puedan indicarme mi error. He revizado mi problema y lo que encuentro ...
  #1 (permalink)  
Antiguo 20/08/2003, 23:06
Avatar de libiob  
Fecha de Ingreso: julio-2003
Ubicación: Lima
Mensajes: 125
Antigüedad: 20 años, 9 meses
Puntos: 1
Problema en carga de Imagenes al servidor!!!

Espero no se aburran con mi problema y prueben en sus servidores y puedan indicarme mi error.

He revizado mi problema y lo que encuentro claro es que cuando agrego al form enctype="multipart/form-data" los archivos que paso a cargar en mi server asumen una extension .tmp y al servidor de internet no le da extension a mi imagen cargada pero si mantiene la cantidad de caracteres que debe tener incluyendo la extension.

Alguien me podria indicar porque? y que debo hacer para que el archivo al guardarse tenga la misma extension.

Funciona perfectamente cuando quito del FORM enctype="multipart/form-data" en mi servidor personal, pero cuando lo paso a mi servidor Internet manda un mensaje:

Warning: copy(E:\\062802puke_prv.gif): failed to open stream: No such file or directory in /home/libiob/public_html/_kingperu_adm/record.php on line 213
NO SE HA PODIDO SUBIR EL FICHERO

Claramente indica que copy E:\\ (ubicacion de mi imagen a copiar en mi PC) no existe en mi server.

No entiendo bien aun sobre este tema pero se que debe funcionar, los permisos y toda cuanta cosa se necesite estan dadas, solo recalco el problema sucede al añadir en la linea del FORM enctype="multipart/form-data".
AQUI LES ENVIO EL CODIGO PARA QUE LO REVISEN Y ME DEN UNA AYUDA, DESDE YA GRACIAS...


Carga Imagenes:
carga.php


Código PHP:
<form method="post" action="rec.php?num=6" name="news" enctype="multipart/form-data">

<
input type="hidden" name="control" value="new00000022">

Imagen1: <INPUT TYPE="FILE" NAME="imag1" style="width:200">
Imagen2: <INPUT TYPE="FILE" NAME="imag2" style="width:200">
Imagen3: <INPUT TYPE="FILE" NAME="imag3" style="width:200">
Imagen4: <INPUT TYPE="FILE" NAME="imag4" style="width:200">
Imagen5: <INPUT TYPE="FILE" NAME="imag5" style="width:200">

<
input type="reset" value="Borrar Informacion">
<
input type="submit" name="enviado" value="Registrar Informacion">

</
form
Guarda las Imagenes:
rec.php

Código PHP:
<?
if(isset($enviado))// Load Imagenes ::::::::::::::::
  
{
     for(
$n=1;$n<$num;$n++)
    {
           
$nomvar "imag$n"//imagen segun numero orden
           
$valvar = ${$nomvar}; 
           
$nomfichero basename($valvar);//Quita la ruta de carga
    
$nimg=substr ($nomfichero, -4); //capturamos la extension de la imagen
    
$cod=$control//
    
$image=trim($cod.$nimg); // carga el nombre para el fichero codigo+extension
        
$newsite "img_$n/".$image.""//direccion de carga a carpetas de acuerdo a orden
        
if(!copy($valvar,$newsite))  #Lo copiamos
      

          echo 
"Error al cargar";
          } 
          else
      {
      echo 
"Archivo cargado con Exito";
          } 
  } 
?>
  #2 (permalink)  
Antiguo 21/08/2003, 16:14
Avatar de libiob  
Fecha de Ingreso: julio-2003
Ubicación: Lima
Mensajes: 125
Antigüedad: 20 años, 9 meses
Puntos: 1
Alguien tendra un script para cargar varias imagenes al servidor, que trabaje similar al que tengo y que no encuentro donde esta el problema, les agradecere grandemente por su disposición.

Mi script del problema siempre le cambio el nombre para identificar a la imagen con la noticia ingresada.

http://www.unaluzdesperanza.com
  #3 (permalink)  
Antiguo 22/08/2003, 16:12
Avatar de libiob  
Fecha de Ingreso: julio-2003
Ubicación: Lima
Mensajes: 125
Antigüedad: 20 años, 9 meses
Puntos: 1
Exclamación

Podra ser este el problema de mi imposibilidad de subir archivos?
"El archivo se guarda en la carpeta temporal del servidor, dato que hay que tenerlo en cuenta ya que no todos los servidores cuentan con esta opción y ponen el tamaño de dicha carpeta a 0, imposibilitando subir archivos".

Como solucionaria esto si tengo un host donde no tengo mas opcion que tratar los archivos donde se me permite (mi espacio)

Gracias por la ayuda amigos.
  #4 (permalink)  
Antiguo 20/12/2005, 04:51
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Tengo el mismo problema, y parece que nadie ha puesto una solución al respecto.

En mi caso tenía instalado el PHP Triad, y lo he quitado instalando Apache, PHP, MySQL, .... por separado para tenerlo actualizado.

Gracias por la ayuda.
  #5 (permalink)  
Antiguo 20/12/2005, 05:13
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 18 años, 9 meses
Puntos: 1
De acuerdo

Buenas, creo que esto os puede servir

post

Si lo que os pasa es problema con los permisos de vuestro proveedor de software, yo estoy tratando el mismo tema, y también he tenido problemas. Finalmente he visto un rayo de luz utilizando FTP. Aquí os dejo el post (Ahora estoy viendo cómo subir todos los archivos que queramos)

Saludos
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.

Última edición por franquero; 20/12/2005 a las 05:27
  #6 (permalink)  
Antiguo 20/12/2005, 06:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por eggman
Tengo el mismo problema, y parece que nadie ha puesto una solución al respecto.

En mi caso tenía instalado el PHP Triad, y lo he quitado instalando Apache, PHP, MySQL, .... por separado para tenerlo actualizado.

Gracias por la ayuda.
Fijate bien en las fechas de estos temas ... "año 2003" .. desde entonces ha llovido mucho sobre el tema ..

Por ejemplo .. ahora no se usa "copy()" para mover archivos sino move_uploaded_file(). Tampoco se accede al archivo por $imag1 .. sino con el array $_FILES ..

En la documentación oficial de PHP tienes descrito como trabajar con un Upload de archivos múltiple:

http://www.php.net/manual/en/feature...d.multiple.php

Además de los comentarios de franquero si es que sus servidores trabajasen en modo seguro "Safe mode".

De todas formas ..los problemas que puedas tener en tu caso concreto debes concretarlos con los mensajes de error que -tu- veas y el código -concreto- que usas, además de especificar bien que versión de PHP usas, que S.O. usa tu servidor .. en fin .. aportar más datos.

Un saludo,
  #7 (permalink)  
Antiguo 22/12/2005, 01:32
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Mi problema es que estoy programando un administrador de contenidos para una tienda on-line, y en el formulario para añadir productos se adjunta una fotografía.

El problema se genera en que bien con copy($imagen, $dir.$nom_imagen) ó move_uploaded_file($imagen, $dir.$nom_imagen) la imagen no se copia en la correspondiente carpeta (el resto de datos sí se añaden en la base de datos), generando un error como éste:

Warning: copy(c:\\maps\\tumbs\\mapsys.jpg) [function.copy]: failed to open stream: No such file or directory in c:\phpscripts\mapcdr.php on line 366 ...

Creo que el error podría estar en que los datos del formulario se envían de una función a otra del mismo php y que el fomulario está hecho con DIV para ocultar o no una parte del mismo.

He probado con un archivo que lo único que hace es subir el archivo y éste no tiene ningún problema (sin DIV ni nada), y anteriormente ya hice otro administrador entre 2 funciones que copia perfectamente las imagenes.

Estoy usando Apache 2.0.55, PHP 5.1.1, MySQL 4.0.26 y Windows XP/2000.

El código que me da problemas es el siguiente: (siguiente post)
  #8 (permalink)  
Antiguo 22/12/2005, 01:34
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Código PHP:
<?PHP

FUNCTION nuevoproducto($idcategoria,$categoria){
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<style type="text/css">
<!--
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
-->
</style>
<link href="css_gestor.css" rel="stylesheet" type="text/css">
<script type='text/javascript' src='formexp.js'></script>
<script>
function expandir_formulario1(){
 if (document.f1.atributo.checked){
    xDisplay('capaexpansion1', 'block')
 }else{
    xDisplay('capaexpansion1', 'none')
 }

}
</script>
<style type="text/css">
#capaestatica1{
    position:relative;
}
#capaexpansion1{
    position:relative;
    display:none;

}
#capaestatica2{
    position:relative;
}
</style>
</head>

<body>
<table width="780" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="114" colspan="3"><img src="images/gestor-de-contenidos_01.jpg" width="780" height="114"></td>
  </tr>
  <tr>
    <td width="153" valign="top"><table width="153" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="11"><img src="images/gestor-de-contenidos_02.jpg" width="152" height="11"></td>
      </tr>
      <tr>
      <td width="153" valign="top">
            <iframe scrolling="no" src="menu.htm" id="menu" name="menu" width="155" height="192" frameborder="0" align="left" hspace="0" vspace="0" marginheight="0" marginwidth="0" title="menu"></iframe>
    </td>
      </tr>
      <tr>
        <td><img src="images/gestor-de-contenidos_42.jpg" width="152" height="26"></td>
      </tr>
      <tr>
        <td><img src="images/gestor-de-contenidos_43.jpg" width="152" height="242"></td>
      </tr>
      <tr>
        <td background="images/gestor-de-contenidos_44.jpg">&nbsp;</td>
      </tr>
    </table></td>
    <td width="615" align="center" valign="top"><table width="601" height="30" border="0" cellpadding="0" cellspacing="2">
      <tr>
        <td class="cabecera_seccion"><a href="admin.php?accion=portada" class="cabecera_seccion">Inicio</a> / Productos / <?PHP echo $categoria;?> / A&ntilde;adir Producto</td>
      </tr>
      <tr>
        <td><img src="images/anadir_producto_03.jpg" width="601" height="20"></td>
      </tr>
      </table>
      <form enctype="multipart/form-data" name=f1>
        <div id=capaestatica1>
      <table width="601" border="0" cellpadding="0" cellspacing="2">
          <tr>
            <td width="200" class="anadir_producto">Nombre del Producto</td>
            <td width="20">&nbsp;</td>
            <td width="322" class="anadir_producto"><input name="nombre" type="text" class="anadir_pdt_formulario" id="nombre" size="60"></td>
            </tr>
          <tr>
            <td class="anadir_producto">Descripci&oacute;n</td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><textarea name="descripcion" cols="60" rows="6" class="anadir_pdt_formulario" id="descripcion"></textarea></td>
            </tr>
          <tr>
            <td class="anadir_producto">Atributo </td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><table width="300" border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td><input type="checkbox" name="atributo" value="1" onclick="expandir_formulario1()"> (Marcar si existen tallas, colores, ...)</td>
              </tr>
            </table></td>
            </tr>
    </table>
    </div>
    <div id=capaexpansion1>
    <table width="601" border="0" cellpadding="0" cellspacing="2">
          <tr>
            <td class="anadir_producto"><div align="right">Nombre atributo</div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="nombreatributo" type="text" class="anadir_pdt_formulario" id="nombre_tallas"></td>
            </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 1 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo1" type="text" class="anadir_pdt_formulario" id="atributo1"></td>
            </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 2 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo2" type="text" class="anadir_pdt_formulario" id="atributo2"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 3 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo3" type="text" class="anadir_pdt_formulario" id="atributo3"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 4 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo4" type="text" class="anadir_pdt_formulario" id="atributo4"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 5 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo5" type="text" class="anadir_pdt_formulario" id="atributo5"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 6 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo6" type="text" class="anadir_pdt_formulario" id="atributo6"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 7 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo7" type="text" class="anadir_pdt_formulario" id="atributo7"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 8 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo8" type="text" class="anadir_pdt_formulario" id="atributo8"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 9 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo9" type="text" class="anadir_pdt_formulario" id="atributo9"></td>
          </tr>
          <tr>
            <td class="anadir_producto"><div align="right">Atributo 10 </div></td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="atributo10" type="text" class="anadir_pdt_formulario" id="atributo10"></td>
          </tr>
    </table>
    </div>
  #9 (permalink)  
Antiguo 22/12/2005, 01:34
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Código PHP:
<div id=capaestatica2>
    <table width="601" border="0" cellpadding="0" cellspacing="2">
          <tr>
            <td class="anadir_producto">Precio</td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="precio" type="text" class="anadir_pdt_formulario" id="precio"> 
              Euros </td>
            </tr>
          <tr>
            <td class="anadir_producto">Colocar en Portada </td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><table width="200" border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td class="anadir_pdt_formulario">SI</td>
                <td><input name="oferta" type="radio" class="anadir_pdt_formulario" value="1"></td>
                <td class="anadir_pdt_formulario">NO</td>
                <td><input name="oferta" type="radio" class="anadir_pdt_formulario" value="0" checked></td>
              </tr>
            </table></td>
            </tr>
          <tr>
            <td class="anadir_producto">Colocar en Ofertas </td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><table width="200" border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td class="anadir_pdt_formulario">SI</td>
                <td><input name="descuento" type="radio" class="anadir_pdt_formulario" value="1"></td>
                <td class="anadir_pdt_formulario">NO</td>
                <td><input name="descuento" type="radio" class="anadir_pdt_formulario" value="0" checked></td>
              </tr>
            </table></td>
            </tr>
          <tr>
            <td class="anadir_producto">Disponible</td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><table width="200" border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td class="anadir_pdt_formulario">SI</td>
                <td><input name="disponibilidad" type="radio" class="anadir_pdt_formulario" value="1" checked></td>
                <td class="anadir_pdt_formulario">NO</td>
                <td><input name="disponibilidad" type="radio" class="anadir_pdt_formulario" value="0"></td>
              </tr>
            </table></td>
            </tr>
          <tr>
            <td class="anadir_producto">Imagen</td>
            <td>&nbsp;</td>
            <td class="anadir_producto"><input name="imagen" type="file" class="anadir_pdt_formulario" id="imagen"></td>
            </tr>
          <tr background="images/gestor-de-contenidos_21.jpg">
            <td height="4" colspan="3"><img src="images/gestor-de-contenidos_17.jpg" width="558" height="1"></td>
            </tr>
        </table>
        <table width="601" border="0" cellpadding="0" cellspacing="2">
        <tr>
        <td height="5" align="center" valign="bottom"><table width="300" border="0" cellspacing="0" cellpadding="2">
          <tr align="center" valign="middle">
            <td width="100"><input name="idcategoria" type="hidden" value="<?PHP echo $idcategoria;?>"><input name="categoria" type="hidden" value="<?PHP echo $categoria;?>"><input name="accion" type="hidden" value="añadirproducto"><input name="Enviar" type="submit" class="titulos_productos" value="Añadir">
            &nbsp;</td>
            <td width="100"><input name="Borrar" type="reset" class="titulos_productos" value="Borrar"></td>
            <td width="100"><input name="Cancelar" type="button" class="titulos_productos" value="Cancelar"></td>
          </tr>
        </table></div></form></td>
      </tr>
    </table></td>
    <td width="8" background="images/gestor-de-contenidos_04.jpg">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html><?PHP
}

FUNCTION 
añadirproducto($idcategoria,$nombre,$descripcion,$atributo,$nombreatributo,$atributo1,$atributo2,$atributo3,$atributo4,$atributo5,$atributo6,$atributo7,$atributo8,$atributo9,$atributo10,$precio,$imagen,$oferta,$descuento,$disponibilidad,$categoria){
    if(
$atributo=='1'){
        for(
$i=1;$i<=10;$i++){
            
$atri="atributo".$i;
            if($
$atri==''){
                $
$atri='0';
            }
        }
        
$sentencia="INSERT INTO productos VALUES(NULL,'$idcategoria','$nombre','$descripcion','$nombreatributo','$atributo1','$atributo2','$atributo3','$atributo4','$atributo5','$atributo6','$atributo7','$atributo8','$atributo9','$atributo10','$precio','','','','$oferta','$descuento','$disponibilidad','')";
    }else{
        
$sentencia="INSERT INTO productos VALUES(NULL,'$idcategoria','$nombre','$descripcion','0','0','0','0','0','0','0','0','0','0','0','$precio','','','','$oferta','$descuento','$disponibilidad','')";
    }
    
$result=mysql_query($sentencia);
    
$id_prod=mysql_insert_id();
    
$dir="../imagenproductos/";
    
$nom_imagen "producto".$id_prod.".jpg";
    
copy($imagen$dir.$nom_imagen);
    
$sentencia2="UPDATE productos SET imagen='$nom_imagen' WHERE id='$id_prod'";
    
$result2=mysql_query($sentencia2);
}


SWITCH(
$accion){
    case 
"nuevoproducto":
        
nuevoproducto($idcategoria,$categoria);
    break;
    case 
"añadirproducto":
        
añadirproducto($idcategoria,$nombre,$descripcion,$atributo,$nombreatributo,$atributo1,$atributo2,$atributo3,$atributo4,$atributo5,$atributo6,$atributo7,$atributo8,$atributo9,$atributo10,$precio,$imagen,$oferta,$descuento,$disponibilidad,$categoria);
        
productos2($categoria);
    break;
}
?>
  #10 (permalink)  
Antiguo 22/12/2005, 06:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
eggman

No uses copy() .. usa move_uploaded_file() ya te hice el comentario antes.

Tampoco veo donde apuntas (action) ni el method (POST debe ser) a tu scritp de proceso en:
<form enctype="multipart/form-data" name=f1>

Un saludo,
  #11 (permalink)  
Antiguo 22/12/2005, 06:53
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
De acuerdo

Muchísimas gracias, Cluster.

El error era muy simple y no me fijé en eso, así que empecé a comerme la cabeza que si era el servidor y tal.

Gracias de nuevo.
  #12 (permalink)  
Antiguo 22/12/2005, 07:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por eggman
Muchísimas gracias, Cluster.

El error era muy simple y no me fijé en eso, así que empecé a comerme la cabeza que si era el servidor y tal.

Gracias de nuevo.
Y cual era el error exactamente?

Un saludo,
  #13 (permalink)  
Antiguo 22/12/2005, 12:21
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Me faltaba completar el FORM con el ACTION y el METHOD ...

No soy un experto, pero tampoco tan tan principiante. Pero cuando se mete una cosa en la cabeza ....

Gracias por la ayuda, y pasad Feliz Navidad!!!
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 11:09.