Error al subir un archivo
![Nota Nota](https://perlenespanol.com/foro/styles/prosilver/imageset/icon_post_target.gif)
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!!!
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!!!