diff options
author | Joey Hess <joey@kitenet.net> | 2011-06-15 20:02:14 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-06-15 20:02:14 -0400 |
commit | d4a0732752e79b57509cee33001ab757132366c5 (patch) | |
tree | a0e16d48bcf2e494cd7313c6ba45ea3f6d5f2c91 /IkiWiki | |
parent | 54672a313049aa0c0a3f14f7ee257c0200e82716 (diff) | |
download | ikiwiki-d4a0732752e79b57509cee33001ab757132366c5.tar ikiwiki-d4a0732752e79b57509cee33001ab757132366c5.tar.gz |
let thru HTTP_ACCEPT
Needed for attachment to return json when requested.
I think some browsers send Accept: * , so I made sure to check that json
was explicitly listed as to be accepted, as well as having a high
priority.
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/attachment.pm | 33 | ||||
-rw-r--r-- | IkiWiki/Wrapper.pm | 2 |
2 files changed, 19 insertions, 16 deletions
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm index 6004a0982..4af9ac92b 100644 --- a/IkiWiki/Plugin/attachment.pm +++ b/IkiWiki/Plugin/attachment.pm @@ -252,22 +252,25 @@ sub attachment_store { IkiWiki::fast_file_copy($tempfile, $filename, $fh, @_); }); } - + # Return JSON response for the jquery file upload widget. - eval q{use JSON}; - error $@ if $@; - print "Content-type: application/json\n\n"; - my $size=-s $dest."/".$filename; - print to_json([ - { - name => $filename, - size => $size, - humansize => IkiWiki::Plugin::filecheck::humansize($size), - stored_msg => stored_msg(), - - } - ]); - exit 0; + if ($q->Accept("application/json") >= 1.0 && + grep { /application\/json/i } $q->Accept) { + eval q{use JSON}; + error $@ if $@; + print "Content-type: application/json\n\n"; + my $size=-s $dest."/".$filename; + print to_json([ + { + name => $filename, + size => $size, + humansize => IkiWiki::Plugin::filecheck::humansize($size), + stored_msg => stored_msg(), + + } + ]); + exit 0; + } } # Save all stored attachments for a page. diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index 4fe2d8111..d39a3ea40 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -49,7 +49,7 @@ sub gen_wrapper () { push @envsave, qw{REMOTE_ADDR QUERY_STRING REQUEST_METHOD REQUEST_URI CONTENT_TYPE CONTENT_LENGTH GATEWAY_INTERFACE HTTP_COOKIE REMOTE_USER HTTPS REDIRECT_STATUS - HTTP_HOST SERVER_PORT HTTPS + HTTP_HOST SERVER_PORT HTTPS HTTP_ACCEPT REDIRECT_URL} if $config{cgi}; my $envsave=""; foreach my $var (@envsave) { |