[#39671] Ruby 1.8.1 on SX-6 — Masaki Hasegawa <masaki-h@...4u.or.jp>

はじめまして、長谷川 と申します。

16 messages 2004/05/19
[#39673] Re: Ruby 1.8.1 on SX-6 — Tanaka Akira <akr@...17n.org> 2004/05/19

In article <20040519.205107.102564296.suuchi29@naps.kishou.go.jp>,

[ruby-list:39634] Re: open-uri でダウンロードできません

From: PT2K <PT2K@...>
Date: 2004-05-06 11:41:37 UTC
List: ruby-list #39634
PT2K です
しち様、ありがとうございます

On Thu, 6 May 2004 01:37:47 +0900
Atsushi SHICHI <ats7@a.email.ne.jp> wrote:

> > (A) open-uri を使う
> > require 'open-uri'
> > open("http://www.d8.dion.ne.jp/~pt2k/COPYING.lzh") {|h|
> >   File.open("COPYING.lzh", "wb") {|f|
> >     f.write(h.read)
> >   }
> > }
> 
> open に 'rb' を指定してもダメでした。
> # OpenURI.open_uri から先にモードが渡ってないような...
> 
> f.write(h.binmode.read)
> 
> とすれば上手くいくようです。

なるほど、open-uri の open のモードは盲点でした
# "rb" すら試していませんでした ^^;

しかし、残念ながら、
f.write(h.binmode.read)
などとしても、正しいバイナリファイルのダウンロードはできないようでした
open-uri を使った場合(A)、本来は 15,918 bytes のファイルが、
15,968 bytes になってしまい、
LHA for Win32(Lha32.exe)やその他の解凍ツールでは、
ヘッダエラーになったり、1つ目のファイルが壊れた形で解凍されたり
(2つ目のファイルは解凍すらされない)、
といった状況でした

ちなみに、Net::HTTP を使った場合(B)、
正しく 15,918 bytes のファイルがダウンロードされ、
解凍も正常でした

当方の環境を書き忘れていました m(_._)m
Win XP home(全てのパッチを適用済み)です
環境によって違うのかしら?

-- 
PT2K <PT2K@mymail.to>
http://myweb.to/PT2K/
PGP  0125 4714 71D8 7DFC 53A2  5E12 3BC7 5FFD 6C1D 50F6

In This Thread