• Publicidad

Renombrar archivo al subirse al servidor

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Renombrar archivo al subirse al servidor

Notapor alvilazaro » 2019-09-04 07:37 @359

¡Hola nuevamente! Tengo este código para subir un archivo al servidor:

$CGI::POST_MAX = 1024 * 5000;
my $upload_dir = "../../certificados/";
my $query = new CGI;
my $filename ="";
my $filename =$query->param("archmov");
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
$mon += 1;
my $datetime = sprintf "%02d%02d%04d%02d%02d%02d", $mon, $mday, $year, $hour, $min, $sec;

my $upload_filehandle = $query->upload("archmov");

if ($filename =~ /[.]pdf$/i) {

open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
binmode UPLOADFILE;

while ( <$upload_filehandle> )
{
print UPLOADFILE;
}

close UPLOADFILE;
}


¡Funciona perfecto! Pero quiero que tanto en la base de datos como en el servidor donde se guardan, se guarde así:

Por ejemplo, el archivo que cargan se llama certificado23.pdf pero yo quiero que se renombre y en la base de datos y carpeta del servidor se guarde así: tipocertificado+idarticulo+ un id que se genere aleatoriamente.

¿Cómo podría llevar a cabo esto? ¡Gracias!
alvilazaro
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2019-08-30 08:46 @407

Publicidad

Re: Renombrar archivo al subirse al servidor

Notapor explorer » 2019-09-04 09:14 @426

¿Modificando la variable $filename antes del open()?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Renombrar archivo al subirse al servidor

Notapor alvilazaro » 2019-09-04 10:19 @472

No entendí, @explorer, perdón.
alvilazaro
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2019-08-30 08:46 @407

Re: Renombrar archivo al subirse al servidor

Notapor explorer » 2019-09-04 10:47 @491

Que digo que después de

if ($filename =~ /[.]pdf$/i) {

es cuando puedes modificar $filename para que tenga el aspecto que quieres que tenga, para que al hacer el open se cree un archivo con ese nombre.

Lo que no sabemos es de dónde vas a sacar los valores de tipocertificado e idarticulo. Lo de generar un id aleatorio es fácil con la función rand(). Pero de lo demás, no sabemos mucho.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Renombrar archivo al subirse al servidor

Notapor alvilazaro » 2019-09-04 11:04 @503

$filename = $v_tipo_certificado+$id_buque_input+rand();


$v_tipo_certificado y $id_buque_input son variables que traigo de arriba, hasta ahi todo bien. pero me los graba sin .pdf, los archivos.
alvilazaro
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2019-08-30 08:46 @407

Re: Renombrar archivo al subirse al servidor

Notapor explorer » 2019-09-04 12:08 @547

$filename = $v_tipo_certificado . $id_buque_input . rand() . '.pdf';

Recuerda que este es el foro de Intermedio...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Renombrar archivo al subirse al servidor

Notapor alvilazaro » 2019-09-04 12:34 @565

¡Excelente! Me funcionó. ¿Esto debería ponerlo en Avanzado o Principante?
alvilazaro
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2019-08-30 08:46 @407

Re: Renombrar archivo al subirse al servidor

Notapor explorer » 2019-09-04 13:34 @607

Donde quieras. Según donde lo pongas, así serán las respuestas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Renombrar archivo al subirse al servidor

Notapor alvilazaro » 2019-09-04 13:48 @617

¡¡¡Muchas gracias!!!
alvilazaro
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2019-08-30 08:46 @407


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados