--- loncom/interface/lonfeedback.pm 2017/11/08 00:36:56 1.375
+++ loncom/interface/lonfeedback.pm 2017/11/12 17:41:32 1.376
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.375 2017/11/08 00:36:56 raeburn Exp $
+# $Id: lonfeedback.pm,v 1.376 2017/11/12 17:41:32 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -44,7 +44,7 @@ use HTML::LCParser();
#use HTML::Tidy::libXML;
use Apache::lonspeller();
use Apache::longroup;
-use Cwd;
+use Archive::Zip qw( :ERROR_CODES );
use LONCAPA qw(:DEFAULT :match);
sub discussion_open {
@@ -702,14 +702,15 @@ END
my $imszipfile = '/prtspool/'.
join('_',$env{'user.name'},$env{'user.domain'},$now).
'_'.rand(1000000000).'.zip';
- my $cwd = &getcwd();
+ my $zip = Archive::Zip->new();
+ $zip->addTree($tempexport);
my $imszip = '/home/httpd/'.$imszipfile;
- chdir $tempexport;
- open(OUTPUT, "zip -r $imszip * 2> /dev/null |");
- close(OUTPUT);
- chdir $cwd;
- $discussion .= &mt('Download the zip file from [_1]Discussion Posting Archive[_2]',
+ if ($zip->writeToFileNamed($imszip) == AZ_OK) {
+ $discussion .= &mt('Download the zip file from [_1]Discussion Posting Archive[_2]',
'','').'
';
+ } else {
+ $discussion .= &mt('Failed to create zip file').'
';
+ }
if ($copyresult) {
$discussion .= ''.
&mt('The following errors occurred during export:').