@@ -, +, @@ --- C4/UploadedFiles.pm | 24 +++++++++++++++++------- opac/opac-retrieve-file.pl | 4 +--- 2 files changed, 18 insertions(+), 10 deletions(-) --- a/C4/UploadedFiles.pm +++ a/C4/UploadedFiles.pm @@ -58,6 +58,16 @@ use Encode; use C4::Context; +sub _get_file_path { + my ($id, $dirname, $filename) = @_; + + my $uploadPath = C4::Context->preference('uploadPath'); + my $filepath = "$uploadPath/$dirname/${id}_$filename"; + $filepath =~ s|/+|/|g; + + return $filepath; +} + =head2 GetUploadedFile my $file = C4::UploadedFiles::GetUploadedFile($id); @@ -93,6 +103,10 @@ sub GetUploadedFile { my $sth = $dbh->prepare($query); $sth->execute($id); my $file = $sth->fetchrow_hashref; + if ($file) { + $file->{filepath} = _get_file_path($file->{id}, $file->{dir}, + $file->{filename}); + } return $file; } @@ -140,13 +154,11 @@ sub UploadFile { # Test if this id already exist my $file = GetUploadedFile($id); - if($file) { + if ($file) { return $file->{id}; } - my $upload_path = C4::Context->preference("uploadPath"); - my $file_path = "$upload_path/$dir/$filename"; - $file_path =~ s#/+#/#; + my $file_path = _get_file_path($id, $dir, $filename); my $out_fh; # Create the file only if it doesn't exist @@ -186,9 +198,7 @@ sub DelUploadedFile { my $file = GetUploadedFile($id); if($file) { - my $upload_path = C4::Context->preference("uploadPath"); - my $file_path = "$upload_path/$file->{dir}/$file->{filename}"; - $file_path =~ s#/+#/#; + my $file_path = $file->{filepath}; my $file_deleted = 0; unless( -f $file_path ) { warn "Id $file->{id} is in database but not in filesystem, removing id from database"; --- a/opac/opac-retrieve-file.pl +++ a/opac/opac-retrieve-file.pl @@ -29,9 +29,7 @@ my $id = $input->param('id'); my $file = C4::UploadedFiles::GetUploadedFile($id); exit 1 if not $file; -my $upload_path = C4::Context->preference("uploadPath"); -my $file_path = "$upload_path/$file->{dir}/$file->{filename}"; -$file_path =~ s#/+#/#; +my $file_path = $file->{filepath}; if( -f $file_path ) { open FH, '<', $file_path or die "Can't open file: $!"; --