Hyper EstraierをWin32に入れる
スポンサードリンク
全文検索システムのHyper Estraierを Win32 に入れるテスト。うち、何種類全文検索入れているんだろう。
Hyper Estraier は、namazu を入れたことがあるのなら絶対失敗しないくらい簡単にはいるのだけれども、日本語ファイル名の PDF が URL エンコーディングされている関係なのか、Apache が素直にファイルシステムから取得してくれないので、引数に URL エンコーディングを与えると、その URL エンコーディングをデコードしてファイルシステムから取ってくるリダイレクタな Perl スクリプトををかませたのだけれども(←最近みなそれで解決)、コミュニティ内では既に解決していそうです。
↓危険なので(サニタイズあたりが)、試験用として。
#!/perl/bin/perl -w #filename: re.cgi #usage: re.cgi?url=http://localhost/%20.pdf use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); use URI::Escape; my $q = new CGI; my $url = $q->param('url'); my $filebase= 'c:/search'; my $fullpath = uri_unescape($url); (my $filename = $fullpath)=~ s|.+[/\\](.+?)|$1|; $fullpath = "$filebase/$filename"; open( IN, $fullpath ) || die "can't open $fullpath \n"; binmode(IN); my $content_length = -s $fullpath; read IN, my $data, $content_length; close(IN); print $q->header( -type=>'application/pdf', -'Content-Length'=>"$content_length", -'Accept-Ranges'=>'bytes' ); print $data;
今日学んだのは、PDF は Content-Length が無いとブラウザで読み込めないことと、CGI.pm の header で、Content-Length などのハイフンを含んだものを入れたいときは、クォーテーションで囲わないといけないってことです。
投稿 大野 義貴 [パソコン・インターネット] | 固定リンク |
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1590
コメントする