Changeset 37218
- Timestamp:
- 2023-01-30T15:23:43+13:00 (8 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/cgiactions/modmetadataaction.pm
r37215 r37218 71 71 72 72 "set-archives-assocfile" => { 73 'compulsory-args' => [ "d", "assocname" , 'fileupload'],74 'optional-args' => [ "dv" ] ,73 'compulsory-args' => [ "d", "assocname" ], 74 'optional-args' => [ "dv", "fileupload", "filedata" ] , 75 75 'help-string' => [ "Because this action uploads a file, this action needs to be POSTed. The 'fileupload' parameter/field is the uploaded file content; 'assocname' specifies the filename within the archives's document's area that it will be saved as" ] 76 76 }, … … 1372 1372 1373 1373 my $output_filename = &util::filename_cat($archive_dir, $output_file); 1374 1374 1375 my $filedata = $self->{'filedata'}; 1375 1376 my $FIN = $self->{'fileupload'}; 1376 if (open(FOUT,">$output_filename")) {1377 1378 binmode(FOUT, ":raw");1379 1380 while (1){1381 my $buffer = ""; 1382 my $bytes_read = read($FIN, $buffer, 1024);1383 1384 if (defined $bytes_read) {1385 if ($bytes_read>0) {1386 print FOUT $buffer;1387 }1388 last if $bytes_read < 1024;1377 1378 if ((!defined $filedata) && (!defined $FIN)) { 1379 $gsdl_cgi->generate_ok_message("set-archives-assocfile: either 'fileupload' or 'filedata' must be set"); 1380 } 1381 else { 1382 1383 my $had_error = 0; 1384 my $had_error_mess = undef; 1385 1386 if (defined $filedata) { 1387 if (open(FOUT,">$output_filename")) { 1388 print FOUT $filedata; 1389 close(FOUT); 1389 1390 } 1390 1391 else { 1391 my $mess = "set-archives-assocfile: Failed to open uploaded file for reading: $!\n"; 1392 print STDERR "Error - $mess"; 1393 $gsdl_cgi->generate_error($mess); 1394 last; 1392 $had_error = 1; 1393 $had_error_mess = "Failed to save filedata to: $output_filename"; 1394 print STDERR "Error - $had_error_mess:\n$!\n"; 1395 1395 } 1396 1396 } 1397 1398 close($FIN); 1399 close(FOUT); 1400 1401 my $mess = "set-archives-assocfile successful save uploaded content into 'archives' as: $output_file\n"; 1402 $gsdl_cgi->generate_ok_message($mess); 1403 1404 } 1405 else { 1406 my $mess = "Failed to save file: $output_filename"; 1407 print STDERR "Error - $mess:\n$!\n"; 1408 $gsdl_cgi->generate_error($mess); 1409 } 1397 else { 1398 my $FIN = $self->{'fileupload'}; 1399 if (open(FOUT,">$output_filename")) { 1400 binmode(FOUT, ":raw"); 1401 1402 while (1) { 1403 my $buffer = ""; 1404 my $bytes_read = read($FIN, $buffer, 1024); 1405 1406 if (defined $bytes_read) { 1407 if ($bytes_read>0) { 1408 print FOUT $buffer; 1409 } 1410 last if $bytes_read < 1024; 1411 } 1412 else { 1413 $had_error = 1; 1414 $had_error_mess = "set-archives-assocfile: Failed to open uploaded file for reading: $!\n"; 1415 print STDERR "Error - $had_error_mess"; 1416 last; 1417 } 1418 } 1419 1420 close($FIN); 1421 close(FOUT); 1422 } 1423 else { 1424 $had_error = 1; 1425 $had_error_mess = "Failed to save file uploaded file as: $output_filename"; 1426 print STDERR "Error - $had_error_mess:\n$!\n"; 1427 } 1428 } 1429 1430 if (!$had_error) { 1431 my $mess = "set-archives-assocfile successful save uploaded content into 'archives' as: $output_file\n"; 1432 $gsdl_cgi->generate_ok_message($mess); 1433 } 1434 else { 1435 $gsdl_cgi->generate_error($had_error_mess); 1436 } 1437 } 1410 1438 } 1411 1439
Note:
See TracChangeset
for help on using the changeset viewer.