--- loncom/interface/multidownload.pl 2007/04/26 17:43:24 1.7 +++ loncom/interface/multidownload.pl 2007/04/26 18:00:41 1.8 @@ -2,7 +2,7 @@ # CGI-script to allow download of all essay submissions of # multiple students. # -# $Id: multidownload.pl,v 1.7 2007/04/26 17:43:24 banghart Exp $ +# $Id: multidownload.pl,v 1.8 2007/04/26 18:00:41 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,6 +61,7 @@ END &Apache::lonlocal::get_language_handle(); &Apache::loncommon::content_type(undef,'text/html'); my $identifier = $ENV{'QUERY_STRING'}; +my $unique_path = $identifier.time(); print(&Apache::loncommon::start_page('Multiple Downloads')); my $scope = $env{'request.course.id'}; @@ -79,21 +80,21 @@ if (&Apache::lonnet::allowed('vgr',$scop my $uname = $env{'user.name'}; my $udom = $env{'user.domain'}; mkdir($doc_zip_root."/zipdir",0700); - mkdir($doc_zip_root."/zipdir/$identifier",0700); + mkdir($doc_zip_root."/zipdir/$unique_path",0700); foreach my $stu (@stuchecked) { my ($stuname,$studom,$fullname) = split(/:/,$stu); - mkdir($doc_zip_root."/zipdir/$identifier/$stuname",0700); + mkdir($doc_zip_root."/zipdir/$unique_path/$stuname",0700); my %record = &Apache::lonnet::restore($symb,$courseid,$studom,$stuname); foreach my $part (@part_response_id) { my ($partid,$respid) = @{$part}; - mkdir($doc_zip_root."/zipdir/$identifier/$stuname/part$partid",0700); - mkdir($doc_zip_root."/zipdir/$identifier/$stuname/part$partid/resp$respid",0700); + mkdir($doc_zip_root."/zipdir/$unique_path/$stuname/part$partid",0700); + mkdir($doc_zip_root."/zipdir/$unique_path/$stuname/part$partid/resp$respid",0700); my $files = &Apache::grades::get_submitted_files($studom,$stuname,$partid,$respid,\%record); foreach my $file (@$files) { $file =~ /(^.*\/)(.+$)/; my $file_name_only = $2; my $file_content = &Apache::lonnet::getfile($file); - if (open(my $fh,">$doc_zip_root/zipdir/$identifier/$stuname/part$partid/resp$respid/$file_name_only")) { + if (open(my $fh,">$doc_zip_root/zipdir/$unique_path/$stuname/part$partid/resp$respid/$file_name_only")) { print($fh $file_content); close($fh); } else { @@ -103,9 +104,10 @@ if (&Apache::lonnet::allowed('vgr',$scop } } mkdir($doc_zip_root."/zipout",0777); - my $statement = "zip -r $doc_zip_root/zipout/output.zip $doc_zip_root/zipdir/$identifier/* > /dev/null"; + my $statement = "cd $doc_zip_root/zipdir/$unique_path\n"; + $statement .= "zip -r $doc_zip_root/zipout/output.zip * > /dev/null"; system($statement); - $statement = "rm -rf $doc_zip_root/zipdir/$identifier"; + $statement = "rm -rf $doc_zip_root/zipdir/$unique_path"; system($statement); print('Click to download
'); } else {