Foros del Web » Programando para Internet » PHP »

múltiples uploads con PHP

Estas en el tema de múltiples uploads con PHP en el foro de PHP en Foros del Web. Pufff, vamos a ver... Me he bajado un applet de java que permite múltiples uploads www.jupload.biz Ese applet tira de un .php para subir los ...
  #1 (permalink)  
Antiguo 06/02/2004, 04:32
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hondarribia
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
múltiples uploads con PHP

Pufff, vamos a ver...
Me he bajado un applet de java que permite múltiples uploads www.jupload.biz

Ese applet tira de un .php para subir los archivos a una carpeta de mi servidor que se llama temp.

El caso es que mi web va con usuarios registrados y lo que quiero hacer es que los archivos de usuario con ID 1 se inserten en la carpeta temp/1, los del usuario ID 2 en la carpeta temp/2, etc...

Este es el código del php que hace subir las imágenes
Código PHP:
<?php

/*
 * JUpload php example
 * saves all uploaded files to the temp/ directory
 * see [url]http://www.haller-systemservice.net/jupload/[/url]
 * info@@haller-systemservice.net
  *´
 */

/*
 * Iterate over all received files.
 * PHP > 4.2 / 4.3 ? will save the file information into the
 * array $_FILES[]. Before these versions, the data was saved into
 * $HTTP_POST_FILES[]
 */
foreach($_FILES as $tagname=>$objekt)
{
 
// get the temporary name (e.g. /tmp/php34634.tmp)
 
$tempName $objekt['tmp_name'];
 
 
// get the real filename
 
$realName $objekt['name'];
 
 
// where to save the file?
 
$target './temp/' $realName;
 
 
// print something to the user
 
echo "<br>Processing file $realName...\n";
 
flush();
 
 
// move the file to the target directory
 
move_uploaded_file($tempName,$target);

    
/* This is a sample from Wilson
     * which will generate thumbnails from
     * the uploaded files. Use it, if you like.
     */
    /*
     $src_img = imagecreatefromjpeg($target);
     $origw=imagesx($src_img); 
     $origh=imagesy($src_img); 
     $new_w = '150';
     $ratio=$origh*$new_w; 
     $new_h=$ratio/$origw; 
     $dst_img = imagecreatetruecolor($new_w,$new_h); 
     imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx
    ($src_img),imagesy($src_img)); 
     imagejpeg($dst_img, $thumb_target); 
    */

 // end of iteration
 
echo "next file...\n";
 
flush();
}


/*
 * This is optional.
 * send error response to jupload
 * format depends on API version of PHP
 */
switch(php_sapi_name())
{
 case 
'cgi':
 case 
'cgi-fcgi':
  
$sz_htstatus 'Status: ';
  break;
 default:
  
$sz_htstatus 'HTTP/1.0: ';
  break;
}

/*
 * Let's generate an error message for JUpload
 */
 
// everything is okay - default message
$sz_message='200 JUpload works great';

// if we got no files, show error message to user
if (count($_FILES) == 0
 
$sz_message='406 No files uploaded';

// now, send the header to JUpload applet
header($sz_htstatus.$sz_message);

// print debug code
//echo "<br><pre>_FILES:\n";
//print_r($_FILES);
//echo "</pre>\n";
flush();

?>
Yo lo que había pensado es esto
Código PHP:
 // where to save the file?
 
$target './temp/$id' $realName
Yo crearía una carpeta con el id de cada usuario y se insertarían las imágenes allí. Pero no funciona. Alguna idea???

Gracias
PD Tened en cuenta por favor que no soy experto en PHP
  #2 (permalink)  
Antiguo 06/02/2004, 05:24
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Primero, en esa linea tendrias que poner:
Código PHP:
$target "./temp/$id/" $realName;  // fijate las comillas dobles 
Eso siempre que ./temp/$id/ este ya creada. Podrias hacer:
Código PHP:
if (!file_exists("./temp/$id")) {
  
// no existe, asi que lo creamos
  
mkdir("./temp/$id");
}
$target "./temp/$id/" $realName;  // fijate las comillas dobles 
todo esto suponiendo que antes ya has hecho que $id contenga el ID del usuario.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 06/02/2004, 09:58
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hondarribia
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias Josemi, lo he probado y no me sale. Además se a ciencia cierta que el ID me lo reconoce, pero no me mete la imagen en la carpeta, no lo se
Gracias
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 04:00.