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') . " " . 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!!!