Not being able to save using Remote API
I'm successfully being able to upload & view a spreadsheet, but when I keep getting 404 errors when Zoho tries to save to my remote server. I tested the multi-part save using an HTML form and it works in that case.
Here's the code for uploading the spreadsheet (with the key & domain being changed for posting purposes):
#!/usr/bin/perl
use CGI::Carp qw ( fatalsToBrowser);
use warnings;
use CGI qw(param header);
use Cwd;
use LWP::UserAgent;
use HTTP::Request::Common;
use WWW::Mechanize;
print header;
my $browser = new LWP::UserAgent;
my $filename = param('file');
my $response = $browser->post(
'http://sheet.zoho.com/remotedoc.im?apikey=dsafhereismykey28c499&output=url',
[ 'saveurl' => 'http://www.hereismydomain.org/cgi-bin/zoho/zohosave.cgi',
'content' => [$filename],
'id' => '12345678',
'format' => 'xls',
],
'Content_Type' => 'form-data',
);
if ($response->is_success) {
$response->content =~ /.*URL=(.*)/;
my $mechanize = WWW::Mechanize->new(autocheck => 1);
$mechanize->get($1);
my $html = $mechanize->content;
print $html;
}
else {
die $response->status_line;
}
Here's the code for accepting the multipart format:
#!/usr/bin/perl
use CGI::Carp qw ( fatalsToBrowser);
use warnings;
#use CGI qw(param header);
use CGI qw/:cgi/;
use Cwd;
$query = new CGI;
$upload_dir = "../../zohoupload";
$filename = $query->param("filename");
$upload_filehandle = $query->upload("content");
open (UPLOADFILE, ">$upload_dir/$filename");
binmode UPLOADFILE;
while ( <$upload_filehandle> )
{
print UPLOADFILE;
}
close UPLOADFILE;
print $query->header ( );
# print <<END_HTML;
print "<HTML>
<HEAD>
<TITLE>Thanks!</TITLE>
</HEAD>
<BODY>
<P>Thanks for uploading</P>
</BODY>
</HTML>"
# END_HTML