2007年10月16日

Railsでau携帯の分割ダウンロードに対処するコードを公開してみる

 Railsでauの携帯電話から3g2の動画がダウンロードできるようにするコードを書いたので公開してみる。

 auの携帯電話から3g2をダウンロードしようとすると分割ダウンロードの要求が送られて、au用マルチメディア・コンテンツダウンロードタグにしても「ダウンロードデータが正しくありません」となってしまうという現象が発生していました。

 これはその現象にRailsで対処するためのコードです。あくまでも参考のためのサンプルで動作の保障はできません。
def send_3g2_file
path = RAILS_ROOT + '/public/' + params[:filename]
filesize = File::size(path)
range = request.env["HTTP_RANGE"]

if range and /^bytes=(\d+)\-(\d+)$/ =~ range
offset = $1.to_i
limit = $2.to_i
length = limit - offset + 1
response.headers["Content-Range"] = sprintf("bytes %d-%d/%d", offset, limit, filesize)
response.headers["Content-Disposition"] = "devmpzz"
content = IO::read(path, length, offset)
status = 206
else
content = IO::read(path)
status = 200
end

response.headers["Accept-Ranges"] = "bytes"
response.headers["Content-Length"] = length

Content-Typeの後に「; charset=utf-8」とか付かないようにするため
response.headers["Content-Transfer-Encoding"] = "binary"

render :text => content, :status => status, :content_type => "video/3gpp2", :layout => false
end

人気blogランキング


posted by よっしぃ at 10:31 | Comment(0) | TrackBack(1) | Ruby On Rails
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

BookMark
Excerpt: ブックマーク From FLand - 日本地図/世界地図/地図ソフト - -- 2007-02-16 (金) 14:17:59 Naruのメモサイト -- 2007-02-16 (..
Weblog: Naruのメモサイト (PukiWiki/TrackBack 0.4)
Tracked: 2008-06-03 02:29
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。