#!C:\Perl64\bin\perl.exe -w use gsdlCGI; sub load_gsdl_utils { my ($gsdlhome) = @_; require "$gsdlhome/perllib/util.pm"; ## require "$gsdlhome/perllib/FileUtils.pm"; } sub save_image_data { my ($gsdl_cgi,$io_dir,$docid,$imagedata) = @_; if (!defined $imagedata || ($imagedata =~ m/^\s*$/)) { $gsdl_cgi->generate_error("No image data given.\n"); return; } # my $filename = &FileUtils::FileConcatenate($io_dir,"$docid-canvas.png"); my $filename = &util::filename_cat($io_dir,"$docid-canvas.png"); if (!open(FILE, ">$filename")) { $gsdl_cgi->generate_error("Cannot open $filename: $!\n"); return; } binmode(FILE); print FILE $imagedata; close(FILE); print STDOUT "Content-type:text/plain\n\n"; print STDOUT "Data save successful\n"; print STDOUT " -> Wrote image data out to $filename\n"; } sub load_image_data { my ($gsdl_cgi,$io_dir,$docid) = @_; # my $filename = &FileUtils::FileConcatenate($io_dir,"$docid-canvas.png"); my $filename = &util::filename_cat($io_dir,"$docid-canvas.png"); if (!open(FILE, "<$filename")) { print STDERR "Requested image data file does not exist\n"; exit -1; } binmode(FILE); print STDOUT "Content-type:text/plain\n\n"; while (defined ($line = )) { print $line; } close(FILE); } sub main { #my $gsdl_cgi = new gsdlCGI("+cmdline"); # doesn't work anymore my $gsdl_cgi = new gsdlCGI(); $gsdl_cgi->setup_gsdl(); my $gsdlhome = $ENV{'GSDL3HOME'}; $gsdl_cgi->checked_chdir($gsdlhome); my $action = $gsdl_cgi->clean_param("a"); my $collect = $gsdl_cgi->clean_param("c"); my $docoid = $gsdl_cgi->clean_param("d"); my $site = $gsdl_cgi->clean_param("site"); ##my $io_dir = &FileUtils::FilenameConcatenate($gsdlhome,"site",$site,"collect",$collect,"index"); my $io_dir = &util::filename_cat($gsdlhome,"sites",$site,"collect",$collect,"index"); if ($action eq "save") { my $image_data = $gsdl_cgi->clean_param("imagedata"); save_image_data($gsdl_cgi,$io_dir,$docoid,$image_data); } elsif ($action eq "load") { load_image_data($gsdl_cgi,$io_dir,$docoid); } else { $gsdl_cgi->generate_error("Unrecognized action: '$action'\n"); } # filename is now local to the current dir after checked_dir # my $filename = $gsdl_cgi->clean_param("filename"); # my $checksum = generate_checksum($filename,$gsdl_cgi); } &main();