1
我有一臺軸相機,它將數據傳送到我給它的地址。我希望它發佈數據到一個rails應用程序,但我還沒有找到任何如何做到這一點的例子。我必須處理的唯一信息是發佈請求的標題。我拉了幾件事,但這裏是我得到的:Rails POST Content-type = image/jpeg
REQUEST_METHOD = POST
QUERY_STRING =
CONTENT_TYPE = image/jpeg
DOCUMENT_ROOT = /var/www/staging/public
REQUEST_URI = /camera/1/images?
SCRIPT_NAME =
PATH_INFO = /camera/1/images
HTTP_CONTENT_DISPOSITION = attachment; filename="image09-12-16_21-16-28-90.jpg"
_ = _
據我所知,請求本身包含JPEG圖像。
Axis將以下內容作爲CGI腳本發佈以保存圖像。它的工作原理,但我想這是我的Rails應用程序的一部分:在ENV {「HTTP_CONTENT_DISPOSITION」}
#!/usr/bin/perl -w
my $upload_dir = "/var/www/cgi-bin/upload/";
print "Content-Type: text/plain\r\n\r\n";
print "Upload OK\r\n";
my $file_name = $ENV{'HTTP_CONTENT_DISPOSITION'};
$file_name =~ s/^attachment; filename=\"(.*)\"$/$1/;
open (IMG_FILE, "> $upload_dir$file_name") or die "can't open >$upload_dir$file_name";
binmode(IMG_FILE);
while (<STDIN>) {
print IMG_FILE $_;
}
chmod 0666, "$upload_dir$file_name";
exit 0;
因此實際文件,這是在頭部和示例代碼都是清晰的。從perl腳本看來,圖像數據全部包含在STDIN中。我已經嘗試了以下在軌道上:
imagefile = File.new("test_file.jpg","w+")
imagefile << STDIN.read
imagefile.close
但它沒有工作。文件test_file.jpg是空的。
有什麼我是使命嗎?有誰知道如何將請求數據保存爲文件?
有誰知道任何允許從Axis網絡攝像頭上傳http的好的庫?