Página 1 de 1

Error al subir un archivo

NotaPublicado: 2017-08-15 16:36 @733
por hugo11ab
Buenas tardes. Solicitando nuevamente de sus conocimientos.

Tengo una aplicación que lo único que sube es un archivo al servidor, pero cuando lo intento almacenar me manda el siguiente error:

x86_64-linux-thread-multi-4.4.6-301.fc23.x86_64) does not match executable architecture (x86_64-linux-thread-multi-4.11.5-200.fc25.x86_64) at /usr/lib64/perl5/Errno.pm line 11

Esta aplicación estaba funcionando en Fedora 14 y no tenía ningún problema, actualice el servidor a Fedora 24 y me empezó a fallar, y solo es con campos de tipo archivo donde me manda el error.

sub ingresarpdf {

my $table0 = new HTML::Table(-cols=>2,-border=>0,-bgcolor=>0,-width=>"90%",-spacing=>0,-padding=>0,-class=>"tablaBordeEnc");
$table0->setCell(1,1,"<img src=\"../../control_vehicular/images/adjuntar_pdf.png\"</img>");
$table0->setCell(1,2,"<span class=\"blanco\">PANTALLA PARA EL INGRESO DE LA DOCUMENTACION</span>");

$table0->setCell(2,2, "Presiona el Boton Examinar y selecciona el archivo a enviar que se encuentra en su PC. Mismo que debera estar en formato PDF. Evita que el nombre del mismo contenga espacios, acentos y cambia las ñ por n.");
$table0->setCell(3,2, "<input type=\"file\" id=\"sourcefile\" name=\"sourcefile\" size=\"50\" class=\"editables\">");
$table0->setCell(4,2, "<br>" . submit(-id=>'btnIngresarD',-name=>'btnIngresarD',-value=>'Registrar',-class=>'Bsbttn') . "&nbsp;&nbsp; " . button(-name=>'regresar',-value=>'Regresar', -onClick=>'javascript:history.back();',-class=>'Bsbttn'));

$table0->setRowHeight(2,"50");
$table0->setRowHeight(3,"40");
$table0->setRowHeight(1,"25");
$table0->setCellBGColor(1,2,"#547980");
$table0->setCellAlign(1,2,"CENTER");
$table0->setCellAlign(3,2,"CENTER");
$table0->setCellAlign(4,2,"CENTER");
$table0->setCellRowSpan(1,1,4);

#====================================================================================================================
do "menu_ingreso.cgi";
my $diseno = &obten_menuPrincipal($table0);
print $session->header;
print start_html(-title=>"$tituloPag",
-script=>[
{ -language => 'JavaScript', -src => '../../control_vehicular/js/jquery-1.11.2.min.js'},
{ -language => 'JavaScript', -src => '../../control_vehicular/js/jquery-ui-1.10.4.custom.min.js'},
{ -language => 'JavaScript', -src => '../../control_vehicular/js/valVehiculo.js'}
],
-style=> [
{-src=>$server.'/control_vehicular/css/redmond/jquery-ui-1.10.4.custom.min.css'},
{-src=>$server.'/control_vehicular/css/diseno.css'}
],
);

print start_form(-action=>$script_name,
-name=>'form',
-id =>'form'
);
print $diseno;
print end_form();
print end_html();
exit;
}

Esta función almacena el archivo:

sub adjuntarPDF {
my ($buffer,$bytesread,$nombre_en_servidor,$extension_correcta,@extensiones,$dir,$nombre,$sql);

#Array con extensiones de archivos que podemos recibir
@extensiones = ('pdf');

$nombre_en_servidor = $FORM{sourcefile};
$nombre_en_servidor =~ s/ /_/gi;
$nombre_en_servidor =~ s!^.*(\\|\/)!!;

$extension_correcta = 0;

foreach (@extensiones){
if($nombre_en_servidor =~ /\.$_$/i){
$extension_correcta = 1;
last;
}
}
my $tamano = -s $FORM{sourcefile};
if (!$FORM{sourcefile} || $extension_correcta == 0 || $tamano <= 0) {
&ingresarpdf("<span class=rojo> No se pudo almacenar el documento, debido a que este no cumple con las caracteristicas solicitadas.");
exit;
}
my $numeroSemana = POSIX::strftime("%V", gmtime time);

$nombre="$aaaa/$numeroSemana/DOC_ANEXO.pdf";
$dir="/var/www/html/control_vehicular/documentos/$nombre";

#Abrimos el nuevo archivo
open (OUTFILE, ">$dir") || die "No se puede crear el archivo";
binmode(OUTFILE); #Para no tener problemas en Windows

#Transferimos byte por byte el archivo
while ($bytesread = read($FORM{sourcefile}, $buffer, 1024)) {
print OUTFILE $buffer;
}

#Cerramos el archivo creado
close (OUTFILE);

&ingresarpdf("<span class=verde> El documento correspondiente al folio <span class=rojo> $folio </span> fué ingresado satisfactoriamente.</span>"); exit;

}

No sé si serán problemas del servidor.

¡¡¡Gracias por su ayuda!!!

Re: Error al subir un archivo

NotaPublicado: 2017-08-15 19:21 @847
por explorer
El mensaje de error me dice que hay una discrepancia en las arquitecturas de las bibliotecas 64 bits.

Me da la sensación de que esas bibliotecas no se han actualizado bien. En el error sale Errno.pm, uno de los paquetes básicos de Perl.

Yo intentaría reinstalar Perl, en ese servidor.

Re: Error al subir un archivo

NotaPublicado: 2017-08-16 16:12 @716
por hugo11ab
Muchas gracias, explorer.

Ya quedó solucionado, actualice el servidor y ahí venía el paquete Errno.

El comando que utilicé para actualizar el Fedora fue:

dnf update