fixed: international characters are corrupted on export
This commit is contained in:
parent
4a88e39c21
commit
f3e08f3268
3 changed files with 32 additions and 15 deletions
|
|
@ -25,6 +25,7 @@
|
|||
was broken. This has been fixed. As a side effect, in the Asset Manager
|
||||
the default behavior is to copy ONLY the Calendar, and none of the events.
|
||||
- fixed: filtering of rich text areas very slow for large content
|
||||
- fixed: international characters are corrupted on export
|
||||
|
||||
7.6.4
|
||||
- Survey now will show progress and time limit.
|
||||
|
|
|
|||
|
|
@ -159,6 +159,36 @@ sub exportAssetData {
|
|||
return $data;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
sub exportWriteFile {
|
||||
my $self = shift;
|
||||
|
||||
# we have no assurance whether the exportPath is valid or not, so check it.
|
||||
WebGUI::Asset->exportCheckPath($self->session);
|
||||
|
||||
# if we're still here, everything is well with the export path. let's make
|
||||
# sure that this user can view the asset that we want to export.
|
||||
unless($self->canView) {
|
||||
WebGUI::Error->throw(error => "user can't view asset at " . $self->getUrl . " to export it");
|
||||
}
|
||||
|
||||
# if we're still here, everything is well with the export path. let's get
|
||||
# our destination FS path and then make any required directories.
|
||||
|
||||
my $dest = $self->exportGetUrlAsPath;
|
||||
my $parent = $dest->parent;
|
||||
|
||||
eval { File::Path::mkpath($parent->absolute->stringify) };
|
||||
if($@) {
|
||||
WebGUI::Error->throw(error => "could not make directory " . $parent->absolute->stringify);
|
||||
}
|
||||
|
||||
if ( ! File::Copy::copy($self->getStorageLocation->getPath($self->get('filename')), $dest->stringify) ) {
|
||||
WebGUI::Error->throw(error => "can't copy " . $self->getStorageLocation->getPath($self->get('filename'))
|
||||
. ' to ' . $dest->absolute->stringify . ": $!");
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
@ -529,20 +559,6 @@ sub www_edit {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
# setStreamedFile and setRedirect do not interact well with the
|
||||
# exporter. We have a separate method for this now.
|
||||
sub exportHtml_view {
|
||||
my $self = shift;
|
||||
my $path = $self->getStorageLocation->getPath($self->get('filename'));
|
||||
open my $fh, '<:raw', $path or return "";
|
||||
while ( read $fh, my $block, 16384 ) {
|
||||
$self->session->output->print($block, 1);
|
||||
}
|
||||
close $fh;
|
||||
return 'chunked';
|
||||
}
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
sub www_view {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->noAccess() unless $self->canView;
|
||||
|
|
|
|||
|
|
@ -753,7 +753,7 @@ sub exportWriteFile {
|
|||
}
|
||||
|
||||
# next, get the contents, open the file, and write the contents to the file.
|
||||
my $fh = eval { $dest->openw };
|
||||
my $fh = eval { $dest->open('>:utf8') };
|
||||
if($@) {
|
||||
WebGUI::Error->throw(error => "can't open " . $dest->absolute->stringify . " for writing: $!");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue