use File::stat;
use File::Slurp;
use File::Spec;
+use List::MoreUtils qw(apply);
use POSIX ();
+use Encode qw(decode);
use SL::DBUtils;
my $base_path = $ENV{'SCRIPT_NAME'};
$base_path =~ s|[^/]+$||;
if (opendir my $dir, $path) {
- foreach my $file (sort { lc $a cmp lc $b } readdir $dir) {
+ foreach my $file (sort { lc $a cmp lc $b } map { decode("UTF-8", $_) } readdir $dir) {
next if (($file eq '.') || ($file eq '..'));
my $fname = $file;
foreach my $item (qw(tmpdir tmpfile type)){
next if $form->{$item};
$::lxdebug->message(LXDebug::WARN(), 'Missing parameter');
- $::form->error($::locale->text("Missing parameter for webdav file copy"));
+ $::form->error($::locale->text("Missing parameter for WebDAV file copy"));
}
my ($webdav_folder, $document_name) = get_webdav_folder($form);
if (! $webdav_folder){
$::lxdebug->leave_sub();
- $::form->error($::locale->text("Cannot check correct webdav folder"));
+ $::form->error($::locale->text("Cannot check correct WebDAV folder"));
return undef;
}
$latest_file_name = File::Spec->catfile($complete_path, $newest_name);
my $filesize = stat($latest_file_name)->size;
- my ($ext) = $form->{tmpfile} =~ /(\.[^.]+)$/;
- my $current_file = File::Spec->catfile($form->{tmpdir}, $form->{tmpfile});
+ my $current_file = File::Spec->catfile($form->{tmpdir}, apply { s:.*/:: } $form->{tmpfile});
my $current_filesize = -f $current_file ? stat($current_file)->size : 0;
if ($current_filesize == $filesize) {