Foros del Web » Programando para Internet » PHP »

Problemas al subir archivo

Estas en el tema de Problemas al subir archivo en el foro de PHP en Foros del Web. ¡Hola a todos!. Les escribo para ver si me pueden ayudar con su gran conocimiento en algo que me tiene afligido. Resulta que en una ...
  #1 (permalink)  
Antiguo 13/04/2008, 14:07
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 16 años, 11 meses
Puntos: 0
Problemas al subir archivo

¡Hola a todos!. Les escribo para ver si me pueden ayudar con su gran conocimiento en algo que me tiene afligido.

Resulta que en una página que tengo hay un script que sube archivos (fotos en este caso), este script funciona perfectamente en mi pc, pero en el nuevo hosting que contrataron hay un problema y cuando intento subir el archivo este no lo sube. Les explico como funciona.

Se trata de una página de corredor de propiedades, entonces por cada casa se pueden subir muchas fotos. Al entrar al script se envía el id de la casa, cuando se selecciona una imagen (del pc con el botón explorar) y se presiona el botón para enviar el formulario, esté se envía a la misma página que con un isset sé si se llega por primera vez al formulario o si está recibiendo alguna fotografía, una vez hecho esto se copia la imagen al lugar de destino y se le cambia el nombre, luego se ingresa en la base de datos. El script muestra la última imagen subida, y más abajo una galería de las imágenes que tiene la propiedad.

Como les cuento no está funcionando el script, al principio pensé que era por el permiso de la carpeta porque no lo había cambiado (de 755 a 777) y cuando lo cambié el ftp mostraba que lo hacía pero al poner atributos decía 755 nuevamente, bueno al final lo cambie y lo revise unas horas después y esta ya en 777, pero no sube las fotos, lo más curioso de esto es que el mismo script lo tengo en otra página en el mismo hosting y ahí funciona perfectamente. Les coloco el código:

Código PHP:
<?php
import_request_variables
("GPC");
session_start();
//session_register('administrador');
$adminstrador=$_SESSION['administrador'];
$idp=session_id();

    if (isset (
$_SESSION['administrador'])){
      $****=
1;
      } 
  else{
  
?>
      <script>
      alert("Estas intentando ingresar \n a un lugar NO autorizado!!");
      location.href = "index.php"; 
      </script>
  <?php

    
}
if($*****==
1)
{

?>
<?php
require_once('config.php');
$sql_pro="SELECT * FROM ****** where id='$id'";
$sql_foto="SELECT * FROM ****** where foto_idinmueble='$id'";
$result_pro=mysql_query($sql_pro);
$result_foto=mysql_query($sql_foto);
$row_pro=mysql_fetch_array($result_pro);
$pro_cat_id=$row_pro["pro_cat_id"];
$pro_nombre=$row_pro["pro_nombre"];
//Variables----------------------------------------------------------- ------
$domain "localhost";      //nombre del domino
$path "../imagenes/";   //Donde esta la carpeta para subir imagenes
$path_after_domain "";   //Parche de la web ej. www/
$max_size 1050000;          //Tamaño maximo
//-------------------------------------------------------------------- ----------------
?>
<HTML>
<HEAD>
<TITLE>************* - Sube imagenes</TITLE>
<link rel="stylesheet" type="text/css" href="anylink.css" />
<LINK rel=stylesheet href=./menu.css type=text/css>
<link rel="stylesheet" href="../imagenes/thumbnailviewer.css" type="text/css" />
<script src="../imagenes/thumbnailviewer.js" type="text/javascript">
/***********************************************
* Image Thumbnail Viewer Script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
</script>
<script type="text/javascript" src="anylink.js">
</script>
<style type="text/css">
<!--
.Estilo2 {color: #FFFFFF;
    font-size: 12px;
}
-->
</style>
</HEAD>
<BODY BGCOLOR=#FFFFFF leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<span class="bodyplaingrey"></span> <span class="bodyplainred"></span> <span class="credit"></span> 
<span class="boldwhiteCopy"></span> <span class="boldwhite"></span> <span class="bodyplain"></span> 
<p align="center"><img src="img/montero.jpg" width="300" height="50" /><a href="panel.php"><img src="img/controlpanel.jpg" width="200" height="50" border="0" /></a></p>
<table width="300" border="0" align="center" cellspacing="0">
  <tr>
    <th scope="col"><a href="propiedades.php"><img src="img/tproducto.jpg" width="300" height="80" border="0" /></a></th>
  </tr>
</table>
    <?php
if (isset($id)==true)
{
echo 
"
<FORM ENCTYPE=multipart/form-data ACTION=foto.php METHOD=POST>
        <strong><font color=#990000 face=Geneva, Arial, Helvetica, sans-serif>IMAGEN (jpg):
        <INPUT TYPE=file NAME=userfile><br>
        </font></strong>
        <INPUT TYPE=submit VALUE=Subir>
        <input type=hidden name=id value=$id>
</FORM>
<br>
"
;


if (!isset(
$HTTP_POST_FILES['userfile'])) //esto es si se llega por primera vez al formulario
    
{
    }
if (
is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
    die(
"ACA ESTOY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
if (
$HTTP_POST_FILES['userfile']['size']>$max_size) {
        echo 
"<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\"><font color=red>Error:</font> El archivo es muy grande !</font><br>\n"; exit; }
if ((
$HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg")) {

        if (
file_exists($path $HTTP_POST_FILES['userfile']['name'])) {
                echo 
"<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\"><font color=red>Error:</font> Este archivo ya existe, renombralo y vuelve a intentarlo</font><br>\n"; exit; }

        
$res copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .$HTTP_POST_FILES['userfile']['name']);

        if (!
$res) { echo "<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\">Tenemos problemas, intenta mas tarde</font><br>\n"; exit; } else {
        
?>
<br>
<p>
<br>
</p>
<?php
 
}
echo 
"<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\"><hr>";
echo 
"<center><b>Foto recien subida</b></center>";
echo 
"Nombre: ".$HTTP_POST_FILES['userfile']['name']." (nombre antiguo)<br>\n";
echo 
"Tamaño: ".$HTTP_POST_FILES['userfile']['size']." bytes<br>\n";?>
<br><br>
<?php
$foto_idinmueble
=$id;
$foto_nombre=$HTTP_POST_FILES['userfile']['name'];
echo 
"foto nombre".$foto_nombre;
$query="insert into foto set foto_nombre='$foto_nombre', foto_idinmueble='$foto_idinmueble'";
mysql_query($query);
$seleccion mysql_query("SELECT foto_id FROM foto ORDER BY foto_id desc limit 1");
$row=mysql_fetch_array($seleccion);
$codigoimagen=$row["foto_id"];
$foto_nombre=$codigoimagen;
$foto_nombre=$foto_nombre.".jpg";
$imagennombre=$HTTP_POST_FILES['userfile']['name'];
rename("../imagenes/$imagennombre","../imagenes/$foto_nombre");//cambia el nombre del archivo
$query="UPDATE foto SET foto_nombre='$foto_nombre' WHERE foto_id='$codigoimagen'";
mysql_query($query);

echo 
"<a href=../imagenes/$foto_nombre target=_blank>";

echo 
"<img src=../imagenes/$foto_nombre width=180 height=180 border=0></a>";
} else { echo 
"<font color=\#333333\ face=\Geneva, Arial, Helvetica, sans-serif\>¡<font color=red>Error:</font> ¡Debe ser una imagen jpg!</font><br>\n"; exit; }

}
}

else 
{
echo 
"<br><br><br><center>¡LO SIENTO, NO PUEDES ENTRAR AL FORMULARIO DE ESTE MODO!</center><br><br><br>";
}

if (isset(
$id)==true)
   {
   echo 
"<br><hr><br>
   <center>Fotos de <b>$pro_nombre</b> Codigo: <b>$id</b></center>
   <div align=center class=bodyplain><span class=Estilo2><font color=red>*IMPORTANTE: Imagenes en Orden Descendente de Ingreso. NO ACTUALIZAR ESTA P&Aacute;GINA</span></div> 
   <br><br><br>
   "
;
   
$seleccion mysql_query("SELECT * FROM foto where foto_idinmueble='$id' ORDER BY foto_id DESC");
       echo 
"
    <table width=200 border=1 align=center>"
;
        
$b=0;
        
$c=1;
           while ( 
$row mysql_fetch_array($seleccion) ) 
        {
        
$foto_nombre=$row["foto_nombre"];
        
$foto_id=$row["foto_id"];
        if(
$b==0)
            {
            echo 
"<tr>";
            }
        echo 
"
        <td align=center valign=middle>
        
        <table width=160 height=160 border=1 align=center cellspacing=0>
          <tr>
        <td width=10 rowspan=2 background=../imagenes/borde1.gif>&nbsp;</td>
        <td width=140 align=center valign=middle bordercolor=#FFFFFF><a href=../imagenes/$foto_nombre rel=thumbnail><img src=../imagenes/$foto_nombre width=130 height=130 border=0/></a></td>
        <td width=10 rowspan=2 background=../imagenes/borde2.gif>&nbsp;</td>
          </tr>
        <tr>
        <td align=center>
        <a href=borrarfoto.php?id=$id&foto_id=$foto_id><img src=img/delete.gif border=0 title=\"Borrar Imagen\"></a>
        </td>
        </tr>
        </table>
        
        
        </td>"
;

        while(
$c==$contar && $b!=2)
            {
            echo 
"
            <td align=center valign=middle>&nbsp;</td>
            "
;
            
$b++;
            }
        if(
$b==2)
            {
            echo 
"</tr>";
            
$b=0;
            }
        else
            {
            
$b++;
            }
        
$c++;
        }
        echo
"
    </table>"
;
   }
?>

</BODY>
</HTML>
<?php 
}//fin if
else{
?>
      <script>
      alert("Estas intentando ingresar \n a un lugar NO autorizado!!");
      location.href = "index.php"; 
      </script>
<?php

}

?>

Algunos nombres los he cambiado por ******** por razones de seguridad, pero son irrelevantes.

Al parecer el problema podría estar aquí:
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
die("ACA ESTOY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!");

ya que jamás entra ahí, el die jamás se ejectuta en ese punto, o quizás no entra ahí porque por alguna razón jamás se envia el archivo entonces no se tiene el nombre original de este $HTTP_POST_FILES['userfile']['tmp_name']


Por Favor necesito su ayuda, esto me tiene desesperado.



Gracias, cualquier cosa me preguntan

Saludos!!!
  #2 (permalink)  
Antiguo 13/04/2008, 14:12
 
Fecha de Ingreso: abril-2008
Mensajes: 10
Antigüedad: 15 años, 11 meses
Puntos: 1
Re: Problemas al subir archivo

Si usa php 5 o superior deberias usar la varible corta $_POST en ves de $HTTP_POST_FILES, creo que esto no soluconara el problema pero se adapatara mejor el codigo a las versiones futuras de php.
  #3 (permalink)  
Antiguo 13/04/2008, 14:25
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas al subir archivo

Gracias por la apreciación, de hecho pienso que quizás sea que en el servidor que está la página tengan una versión distinta al servidor donde está la página que funciona bien con el mismo script, aunque sea la misma empresa de hosting.
  #4 (permalink)  
Antiguo 13/04/2008, 22:08
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas al subir archivo

Alguien tiene un indicio aunque sea de que es???.

Plis!!!!.
  #5 (permalink)  
Antiguo 13/04/2008, 23:54
 
Fecha de Ingreso: abril-2008
Ubicación: Querétaro, Mexico
Mensajes: 44
Antigüedad: 15 años, 11 meses
Puntos: 2
Re: Problemas al subir archivo

hola que tal


tengo entendido que $HTTP_POST_FILES esta en desuso, ya que el reemplazo es : $_FILES


intenta hacer un
Código PHP:
print_r($_FILES); 
para que veas que informacion trae.

a ver si ese es tu problema.


saludos!
  #6 (permalink)  
Antiguo 18/04/2008, 23:24
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas al subir archivo

No había tenido tiempo de entrar, pero hace poco probé cambiar $HTTP_POST_FILES por $_FILES y a menos que lo hayan solucionado del hosting esto del cambio a funcionado!!!!!!


GRACIAS gary_qwerty!!!!! Me has salvado la vida!!!!

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 16:43.