1

呼び出したときに得られるものは次のmagic.from_bufferとおりです。

>>> import urllib2
>>> data = urllib2.urlopen('http://www.in.gov/judiciary/opinions/previous/wpd/05040501.bed.doc').read()
>>> len(data)
29696
>>> from lib import magic
>>> magic.from_buffer(data, mime=True)

この時点で、 が提供されるはずですがapplication/msword、最後の呼び出しからは何も得られません。私は何が欠けていますか?

これは開発マシンでは機能しますが、サーバーでは失敗します。私はかなり困惑しています。

4

1 に答える 1

0

問題の理由 (バージョンの可能性があります) はわかりませんが、次のような方法で回避できました。

mime = magic.from_buffer(data, mime=True)
if mime == None:
    # Workaround for issue with libmagic1==5.09-2 in Ubuntu 12.04. Fixed in libmagic 5.11-2.
    file_str = magic.from_buffer(data)
    if file_str.startswith('Composite Document File V2 Document'):
        mime = 'application/msword'

素晴らしいとは言えませんが、サーバーをアップグレードして新しいバージョンの libmagic を入手できるようになるまで、仕事は完了です。

于 2013-03-01T23:57:42.897 に答える