Foros del Web » Programando para Internet » PHP »

problemas al subir imagen

Estas en el tema de problemas al subir imagen en el foro de PHP en Foros del Web. Hola a todos me encuentro ante un problemilla bastante grande para mi, ya que mi conocimientos en php son bastantes limitados con el tema de ...
  #1 (permalink)  
Antiguo 27/07/2009, 07:18
 
Fecha de Ingreso: octubre-2007
Mensajes: 114
Antigüedad: 16 años, 6 meses
Puntos: 0
problemas al subir imagen

Hola a todos me encuentro ante un problemilla bastante grande para mi, ya que mi conocimientos en php son bastantes limitados con el tema de subir imagenes. Bueno tengo una pagina con un formulario para subir una imagen que es la siguinete:

Código HTML:
<form method="post" action="<?php echo LINK_ROOT; ?>cms/_process/upload.php?tp=<?php echo $_GET['tp']; ?><?php echo ((isset($_GET['pid']))?'&pid='.$_GET['pid']:''); ?>" enctype="multipart/form-data">
<span style="margin-right: 15px; margin-left: auto;"><?php echo ((isset($_GET['pid']))?'Main Image? <input type="checkbox" name="mainImg" value="1" />&nbsp;Is Map? <input type="checkbox" name="map" value="1" />&nbsp;':''); ?>File : <input type="file" name="_file" id="_file" />&nbsp;<input type="submit" name="_upload" id="_upload" value="Upload" /></span>
</form> 
y luego el codigo que la procesa, pero al parecer en la parte del segundo move_uploaded_file no lo procesa. Alguien sabe a que se debe. Gracias de antemano

Código PHP:
<?php
include('../../inc/config.php');

if(isset(
$_FILES['_file']) && $_FILES['_file']['size'] > 0){
    
$tp base64_decode($_GET['tp']);
    
        
    switch(
$tp){
        case 
'site':
            
            
$dest_path DOC_ROOT 'usr/image/';
            
$fileName str_replace(' ''-'$_FILES['_file']['name']);
            
            list(
$width$height) = getimagesize($_FILES['_file']['tmp_name']);
            if(
$width 1024 || $height 768){
                echo 
'
                <script type="text/javascript">
                alert("Image width or height too large. Maximum size is 1024 x 768.");
                window.location = "'
.LINK_ROOT 'cms/_pages/img-browser.php?tp='.$_GET['tp'].'";
                </script>
                '
;
                exit();
            }
            
            if(
file_exists($dest_path.$fileName)){
                
$fileName substr($fileName0, -4) . time() . substr($fileName, -4);
            }
            
            if(
move_uploaded_file($_FILES['_file']['tmp_name'], $dest_path.$fileName)){
                
header('Location: '.LINK_ROOT.'cms/_pages/img-browser.php?tp='.$_GET['tp']);
            }else{
                echo 
'
                <script type="text/javascript">
                alert("Unable to upload image aqui.");
                window.location = "'
.LINK_ROOT 'cms/_pages/img-browser.php?tp='.$_GET['tp'].'";
                </script>
                '
;
            }
            
            break;
            
        default:
        case 
'prop':
            
$id base64_decode($_GET['pid']);
            
$imgName str_replace(' ''-'$_FILES['_file']['name']);
            
$mainImg = ((isset($_POST['mainImg']))?$_POST['mainImg']:0);
                        
$isMap = ((isset($_POST['map']))?$_POST['map']:0);
            list(
$width$height) = getimagesize($_FILES['_file']['tmp_name']);
            if(
$width 1024 || $height 768){
                echo 
'
                <script type="text/javascript">
                alert("Image width or height too large. Maximum size is 1024 x 768.");
                window.location = "'
.LINK_ROOT 'cms/_pages/img-browser.php?tp='.$_GET['tp'].'&pid='.$_GET['pid'].'";
                </script>
                '
;
                exit();
            }
            
$conn db_start();
            
$query "SELECT name FROM propimages WHERE name = '$imgName'";
            
$result mysql_query($query);
            
$entry mysql_num_rows($result);
            
db_close($conn);
            
            
            
            if(
$entry !== 0){
                
$imgName substr($imgName0, -4) . '_' $entry substr($imgName, -4);
                
$dest $dest DOC_ROOT 'images/_prop/' $imgName;
            }else{
                
$dest $dest DOC_ROOT 'images/_prop/' $imgName;
            }
            
            if(
move_uploaded_file($_FILES['_file']['tmp_name'], $dest)){
                
$conn db_start();
                if(
$mainImg !== 0){
                    
$query "UPDATE propimages SET mainImg = '0' WHERE pid = '$id'";
                    
$result mysql_query($query);
                }
                
                
                
                
$query "INSERT INTO propimages VALUES (null, '$imgName', '$id', '$mainImg', '$isMap')";
                
$result mysql_query($query);
                
db_close($conn);
                
header('Location: '.LINK_ROOT 'cms/_pages/img-browser.php?tp='.$_GET['tp'].'&pid='.$_GET['pid']);
            }else{
                echo 
'
                <script type="text/javascript">
                alert("Unable to upload image aqui2"); 
                window.location = "'
.LINK_ROOT 'cms/_pages/img-browser.php?tp='.$_GET['tp'].'&pid='.$_GET['pid'].'";
                </script>
                '
;
            }
            break;
    }
    
}else{
    echo 
'
    <script type="text/javascript">
    alert("No image to upload.");
    window.location = "'
.LINK_ROOT 'cms/_pages/img-browser.php?tp='.$_GET['tp'].'&pid='.$_GET['pid'].'";
    </script>
    '
;
}

?>
  #2 (permalink)  
Antiguo 27/07/2009, 08:48
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Sonrisa Respuesta: problemas al subir imagen

Hola, te recomiendo q uses una clase q se llama class.upload para el manejo de imágenes, podés hacer de todo y sin mayores complicaciones.

No puedo poner links, buscala en google.

Saludos.
  #3 (permalink)  
Antiguo 27/07/2009, 10:19
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problemas al subir imagen

Revisa que el directorio al que quieres mover la imagen tenga permisos de escritura, de lo contrario la imagen se subirá, sí, pero no podrás molerla de los temporales a tu directorio
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 12:02.