Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Imagenes asociadas por mysql y php usuarios

Estas en el tema de Imagenes asociadas por mysql y php usuarios en el foro de Frameworks JS en Foros del Web. Hola que tal como les va, hace poco hice un aporte despues de mucha ayuda de los usuarios de foros del web, para cambiar la ...
  #1 (permalink)  
Antiguo 04/01/2010, 23:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Imagenes asociadas por mysql y php usuarios

Hola que tal como les va, hace poco hice un aporte despues de mucha ayuda de los usuarios de foros del web, para cambiar la contraseña de una base de datos en php y mysql, [URL="http://www.forosdelweb.com/f18/problema-con-cambiar-contrasena-php-mysql-765022/"]http://www.forosdelweb.com/f18/problema-con-cambiar-contrasena-php-mysql-765022/[/URL]

ahora me surge otro tema a ver si lo podemos aclarar.

Asi como muchos blogs con usuarios quiero generar una imagen de "avatar" o en todo caso que el usuario pueda asociar una imagen que quiera a su perfil esto quiere decir que pueda subir una imagen, y cada vez que ingrese y que la pagina traiga sus datos traiga tambien la imagen que subio el usuario, no se si me explico bien.

ya tengo como ya deben saber mi sistema de usuarios, ahora como sigo a partir de aquí, que me recomiendan, no se por donde empezar, ya que si utilizo binario en base de datos, puede que no puedan subir imagenes pesadas, que no me molestaria en este caso. desde ya muchas gracias a todos los que puedan aportar
  #2 (permalink)  
Antiguo 04/01/2010, 23:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Imagenes asociadas por mysql y php usuarios

lo mejor en todos los casos es almacenar solo la ruta de la imagen, y almacenarla fisicamente en el servidor...

puedes comenzar por hacer un upload sencillo para aprender a manipularlos a gusto, no lo olvides... procura revisar siempre las FAQ's y Wiki del foro de PHP ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/01/2010, 17:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Imagenes asociadas por mysql y php usuarios

Cita:
Iniciado por pateketrueke Ver Mensaje
lo mejor en todos los casos es almacenar solo la ruta de la imagen, y almacenarla fisicamente en el servidor...

puedes comenzar por hacer un upload sencillo para aprender a manipularlos a gusto, no lo olvides... procura revisar siempre las FAQ's y Wiki del foro de PHP ;)
ok pero cuando hago el upload que tengo, en ajax sube la imagen a un directorio, ahora como la asocio a nuestro usuario??? por que bueno el upload me guarda la imagen en un directorio pero despues???
  #4 (permalink)  
Antiguo 05/01/2010, 18:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Imagenes asociadas por mysql y php usuarios

Cita:
Iniciado por h3greed Ver Mensaje
ok pero cuando hago el upload que tengo, en ajax sube la imagen a un directorio, ahora como la asocio a nuestro usuario??? por que bueno el upload me guarda la imagen en un directorio pero despues???
lo primero es almacenar la ruta final de la imagen en una variable, pero eso ya lo sabes hacer.... supongamos que se llama $archivo

el punto, es tener también alguna variable que haga referencia al usuario... por ejemplo el ID
Código PHP:
$id $_SESSION['id_de_usuario_almacenado_en_sesion']; 
ahora, dependiendo de como tengas tu tabla para los uploads debes relacionarla con el ID del usuario
Código PHP:
$sql "INSERT INTO tabla(usuario, ruta) VALUES($id, '$archivo')"
y eso es todo, el concepto es claro... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/01/2010, 18:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Imagenes asociadas por mysql y php usuarios

Cita:
Iniciado por pateketrueke Ver Mensaje
lo primero es almacenar la ruta final de la imagen en una variable, pero eso ya lo sabes hacer.... supongamos que se llama $archivo

el punto, es tener también alguna variable que haga referencia al usuario... por ejemplo el ID
Código PHP:
$id $_SESSION['id_de_usuario_almacenado_en_sesion']; 
ahora, dependiendo de como tengas tu tabla para los uploads debes relacionarla con el ID del usuario
Código PHP:
$sql "INSERT INTO tabla(usuario, ruta) VALUES($id, '$archivo')"
y eso es todo, el concepto es claro... ;)
bueno como te dije ya tengo el upload con un ajax que me muestra la imagen previa de la subida, está echo con js y ajax, ahora tengo que hacer la variable, teniendo en cuenta de que tengo ya una variable de sesion que me va a servir para llevarlo a cabo, voy a tener que enviar una variable mas y ademas poner en juego un update para el nuevo campo en mi base llamado "avatar", pero no se donde meterlo y como hacerlo funcionar.


estos son mis codigos
upload.php (form)
Código PHP:
<form action="scripts/ajaxupload.php" method="post" id="standard_use" enctype="multipart/form-data">
        <
p>
          <
input type="file" name="filename" />
        </
p>
        
        <
button onClick="ajaxUpload(this.form,'scripts/ajaxupload.php?filename=filename&amp;maxSize=9999999999&amp;maxW=200&amp;fullPath=http://www.webmastermandarinna.com.ar/comunidad/admin/up2/uploads/&amp;relPath=../uploads/&amp;colorR=255&amp;colorG=255&amp;colorB=255&amp;maxH=300','upload_area','Subiendo Avatar Por favor espere...&lt;br /&gt;&lt;img src=\'images/loader_light_blue.gif\' width=\'128\' height=\'128\' border=\'0\' /&gt;','&lt;img src=\'images/error.gif\' width=\'16\' height=\'16\' border=\'0\' /&gt; Error in Upload, check settings and path info in source code.'); return false;">Subir Avatar</button>
        <
small style="font-weight: bold; font-style:italic;"><br>
        
Tipos de archivos soportadosgifjpgpng</small><br />
  </
form
el ajaxupload.php (el que procesa)
Código PHP:
<?php
    
function uploadImage($fileName$maxSize$maxW$fullPath$relPath$colorR$colorG$colorB$maxH null){
        
$folder $relPath;
        
$maxlimit $maxSize;
        
$allowed_ext "jpg,jpeg,gif,png,bmp";
        
$match "";
        
$filesize $_FILES[$fileName]['size'];
        if(
$filesize 0){    
            
$filename strtolower($_FILES[$fileName]['name']);
            
$filename preg_replace('/\s/''_'$filename);
               if(
$filesize 1){ 
                
$errorList[] = "File size is empty.";
            }
            if(
$filesize $maxlimit){ 
                
$errorList[] = "File size is too big.";
            }
            if(
count($errorList)<1){
                
$file_ext preg_split("/\./",$filename);
                
$allowed_ext preg_split("/\,/",$allowed_ext);
                foreach(
$allowed_ext as $ext){
                    if(
$ext==end($file_ext)){
                        
$match "1"// File is allowed
                        
$NUM time();
                        
$front_name substr($file_ext[0], 015);
                        
$newfilename $front_name."_".$NUM.".".end($file_ext);
                        
$filetype end($file_ext);
                        
$save $folder.$newfilename;
                        if(!
file_exists($save)){
                            list(
$width_orig$height_orig) = getimagesize($_FILES[$fileName]['tmp_name']);
                            if(
$maxH == null){
                                if(
$width_orig $maxW){
                                    
$fwidth $width_orig;
                                }else{
                                    
$fwidth $maxW;
                                }
                                
$ratio_orig $width_orig/$height_orig;
                                
$fheight $fwidth/$ratio_orig;
                                
                                
$blank_height $fheight;
                                
$top_offset 0;
                                    
                            }else{
                                if(
$width_orig <= $maxW && $height_orig <= $maxH){
                                    
$fheight $height_orig;
                                    
$fwidth $width_orig;
                                }else{
                                    if(
$width_orig $maxW){
                                        
$ratio = ($width_orig $maxW);
                                        
$fwidth $maxW;
                                        
$fheight = ($height_orig $ratio);
                                        if(
$fheight $maxH){
                                            
$ratio = ($fheight $maxH);
                                            
$fheight $maxH;
                                            
$fwidth = ($fwidth $ratio);
                                        }
                                    }
                                    if(
$height_orig $maxH){
                                        
$ratio = ($height_orig $maxH);
                                        
$fheight $maxH;
                                        
$fwidth = ($width_orig $ratio);
                                        if(
$fwidth $maxW){
                                            
$ratio = ($fwidth $maxW);
                                            
$fwidth $maxW;
                                            
$fheight = ($fheight $ratio);
                                        }
                                    }
                                }
                                if(
$fheight == || $fwidth == || $height_orig == || $width_orig == 0){
                                    die(
"FATAL ERROR REPORT ERROR CODE [add-pic-line-67-orig] to <a href='http://www.atwebresults.com'>AT WEB RESULTS</a>");
                                }
                                if(
$fheight 45){
                                    
$blank_height 45;
                                    
$top_offset round(($blank_height $fheight)/2);
                                }else{
                                    
$blank_height $fheight;
                                }
                            }
                            
$image_p imagecreatetruecolor($fwidth$blank_height);
                            
$white imagecolorallocate($image_p$colorR$colorG$colorB);
                            
imagefill($image_p00$white);
                            switch(
$filetype){
                                case 
"gif":
                                    
$image = @imagecreatefromgif($_FILES[$fileName]['tmp_name']);
                                break;
                                case 
"jpg":
                                    
$image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']);
                                break;
                                case 
"jpeg":
                                    
$image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']);
                                break;
                                case 
"png":
                                    
$image = @imagecreatefrompng($_FILES[$fileName]['tmp_name']);
                                break;
                            }
                            @
imagecopyresampled($image_p$image0$top_offset00$fwidth$fheight$width_orig$height_orig);
                            switch(
$filetype){
                                case 
"gif":
                                    if(!@
imagegif($image_p$save)){
                                        
$errorList[]= "PERMISSION DENIED [GIF]";
                                    }
                                break;
                                case 
"jpg":
                                    if(!@
imagejpeg($image_p$save100)){
                                        
$errorList[]= "PERMISSION DENIED [JPG]";
                                    }
                                break;
                                case 
"jpeg":
                                    if(!@
imagejpeg($image_p$save100)){
                                        
$errorList[]= "PERMISSION DENIED [JPEG]";
                                    }
                                break;
                                case 
"png":
                                    if(!@
imagepng($image_p$save0)){
                                        
$errorList[]= "PERMISSION DENIED [PNG]";
                                    }
                                break;
                            }
                            @
imagedestroy($filename);
                        }else{
                            
$errorList[]= "CANNOT MAKE IMAGE IT ALREADY EXISTS";
                        }    
                    }
                }        
            }
        }else{
            
$errorList[]= "NO FILE SELECTED";
        }
        if(!
$match){
               
$errorList[]= "File type isn't allowed: $filename";
        }
        if(
sizeof($errorList) == 0){
            return 
$fullPath.$newfilename;
        }else{
            
$eMessage = array();
            for (
$x=0$x<sizeof($errorList); $x++){
                
$eMessage[] = $errorList[$x];
            }
               return 
$eMessage;
        }
    }
    
    
$filename strip_tags($_REQUEST['filename']);
    
$maxSize strip_tags($_REQUEST['maxSize']);
    
$maxW strip_tags($_REQUEST['maxW']);
    
$fullPath strip_tags($_REQUEST['fullPath']);
    
$relPath strip_tags($_REQUEST['relPath']);
    
$colorR strip_tags($_REQUEST['colorR']);
    
$colorG strip_tags($_REQUEST['colorG']);
    
$colorB strip_tags($_REQUEST['colorB']);
    
$maxH strip_tags($_REQUEST['maxH']);
    
$filesize_image $_FILES[$filename]['size'];
    if(
$filesize_image 0){
        
$upload_image uploadImage($filename$maxSize$maxW$fullPath$relPath$colorR$colorG$colorB$maxH);
        if(
is_array($upload_image)){
            foreach(
$upload_image as $key => $value) {
                if(
$value == "-ERROR-") {
                    unset(
$upload_image[$key]);
                }
            }
            
$document array_values($upload_image);
            for (
$x=0$x<sizeof($document); $x++){
                
$errorList[] = $document[$x];
            }
            
$imgUploaded false;
        }else{
            
$imgUploaded true;
        }
    }else{
        
$imgUploaded false;
        
$errorList[] = "File Size Empty";
    }
?>
<?php
    
if($imgUploaded){
        echo 
'<img src="/up2/images/success.gif" width="16" height="16" border="0" style="marin-bottom: -4px;" /> Success!<br /><img src="'.$upload_image.'" border="0" />';
    }else{
        echo 
'<img src="/up2/images/error.gif" width="16" height="16px" border="0" style="marin-bottom: -3px;" /> Error(s) Found: ';
        foreach(
$errorList as $value){
                echo 
$value.', ';
        }
    }
?>
  #6 (permalink)  
Antiguo 07/01/2010, 19:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Imagenes asociadas por mysql y php usuarios

y el ajaxupload.js (el que hace el trabajo)
Código PHP:
function $m(theVar){
    return 
document.getElementById(theVar)
}
function 
remove(theVar){
    var 
theParent theVar.parentNode;
    
theParent.removeChild(theVar);
}
function 
addEvent(objevTypefn){
    if(
obj.addEventListener)
        
obj.addEventListener(evTypefntrue)
    if(
obj.attachEvent)
        
obj.attachEvent("on"+evTypefn)
}
function 
removeEvent(objtypefn){
    if(
obj.detachEvent){
        
obj.detachEvent('on'+typefn);
    }else{
        
obj.removeEventListener(typefnfalse);
    }
}
function 
isWebKit(){
    return 
RegExp(" AppleWebKit/").test(navigator.userAgent);
}
function 
ajaxUpload(form,url_action,id_element,html_show_loading,html_error_http){
    var 
detectWebKit isWebKit();
    
form typeof(form)=="string"?$m(form):form;
    var 
erro="";
    if(
form==null || typeof(form)=="undefined"){
        
erro += "The form of 1st parameter does not exists.\n";
    }else if(
form.nodeName.toLowerCase()!="form"){
        
erro += "The form of 1st parameter its not a form.\n";
    }
    if(
$m(id_element)==null){
        
erro += "The element of 3rd parameter does not exists.\n";
    }
    if(
erro.length>0){
        
alert("Error in call ajaxUpload:\n" erro);
        return;
    }
    var 
iframe document.createElement("iframe");
    
iframe.setAttribute("id","ajax-temp");
    
iframe.setAttribute("name","ajax-temp");
    
iframe.setAttribute("width","0");
    
iframe.setAttribute("height","0");
    
iframe.setAttribute("border","0");
    
iframe.setAttribute("style","width: 0; height: 0; border: none;");
    
form.parentNode.appendChild(iframe);
    
window.frames['ajax-temp'].name="ajax-temp";
    var 
doUpload = function(){
        
removeEvent($m('ajax-temp'),"load"doUpload);
        var 
cross "javascript: ";
        
cross += "window.parent.$m('"+id_element+"').innerHTML = document.body.innerHTML; void(0);";
        
$m(id_element).innerHTML html_error_http;
        
$m('ajax-temp').src cross;
        if(
detectWebKit){
            
remove($m('ajax-temp'));
        }else{
            
setTimeout(function(){ remove($m('ajax-temp'))}, 250);
        }
    }
    
addEvent($m('ajax-temp'),"load"doUpload);
    
form.setAttribute("target","ajax-temp");
    
form.setAttribute("action",url_action);
    
form.setAttribute("method","post");
    
form.setAttribute("enctype","multipart/form-data");
    
form.setAttribute("encoding","multipart/form-data");
    if(
html_show_loading.length 0){
        
$m(id_element).innerHTML html_show_loading;
    }
    
form.submit();

Teniendo en cuenta que todo esto esta bajo tabs.

pateketrueke te agradezco tu tiempo y se que siempre me ayudaste, espero que esta vez lo hagas nuevamente. muchas gracias
  #7 (permalink)  
Antiguo 07/01/2010, 20:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Imagenes asociadas por mysql y php usuarios

ahora, tal ves puedas leer un poco el código y analizarlo un poco:

en el script hay una linea donde se declara un boolean para determinar el estado del upload
Código PHP:
// ... OK
$imgUploaded true
en este bloque de código puedes hacer las acciones que consideres pertinentes, respectivamente... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 07/01/2010, 21:09
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Imagenes asociadas por mysql y php usuarios

Cita:
Iniciado por pateketrueke Ver Mensaje
ahora, tal ves puedas leer un poco el código y analizarlo un poco:

en el script hay una linea donde se declara un boolean para determinar el estado del upload
Código PHP:
// ... OK
$imgUploaded true
en este bloque de código puedes hacer las acciones que consideres pertinentes, respectivamente... ;)
si estuve leyendo el código pero el tema es que no sabia donde poner las variables y como hacer para ya que no lo veía, muchas veces cuando lees mucho código te mareas jeje, de todas maneras, me las arreglo como puedo, no estudie esto es simple autogestion, y muchas veces ayuda de ustedes cuando me vuelvo loco.

ahora en
Código:
}else{ 
			$imgUploaded = true;
ahi pongo mi variable
Código:
$usuario = ($_SESSION['s_usuario']);
y tambien mi codigo para actualizar los datos del usuario en la imagen avatar, pero como de js no entiendo mucho, como hago para saber cual es la variable de la ruta de la imagen?? gracias siempre me ayudas sos un genio
  #9 (permalink)  
Antiguo 08/01/2010, 11:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a AJAX
  #10 (permalink)  
Antiguo 09/01/2010, 06:39
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Imagenes asociadas por mysql y php usuarios

Cita:
Iniciado por GatorV Ver Mensaje
Tema movido desde PHP a AJAX
gastor me puedes ayudar con mi problema???
  #11 (permalink)  
Antiguo 09/01/2010, 08:28
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Imagenes asociadas por mysql y php usuarios

disculpen amigos ya lo pude solucionar un abrazo a todos les dejo el codigo

en el ajaxupload.php

Código PHP:
}else{
            
$imgUploaded true;
            
$avatar "$upload_image"
y mas abajo
Código PHP:
<?php
    
if($imgUploaded){
        echo 
'<img src="/up2/images/success.gif" width="16" height="16" border="0" style="marin-bottom: -4px;" /> Success!   <br /><img src="'.$upload_image.'" border="0" /><br /> "'.$avatar.'"';
             include(
"dbconexion.php"); 
             if (isset(
$_POST["usuario"])) { 
             
$usuario $_POST["usuario"];  
             
$query "UPDATE usuarios SET avatar='".$avatar."' WHERE usuario='$usuario'"
             
mysql_query($query);

    }else{
        echo 
'<img src="/up2/images/error.gif" width="16" height="16px" border="0" style="marin-bottom: -3px;" /> Error(s) Found: ';
        foreach(
$errorList as $value){
                echo 
$value.', ';
        }
    }
    }
?>
  #12 (permalink)  
Antiguo 08/06/2010, 01:26
Avatar de Vergara  
Fecha de Ingreso: junio-2010
Ubicación: San Francisco California
Mensajes: 249
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Imagenes asociadas por mysql y php usuarios

tema movido desde pinol a maestro limpio

Etiquetas: ajax, imagenes, mysql, php, usuarios
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 09:22.