Rails paperclip 的 file type 和 content type 的奇怪问题

bwlinux · 2014年07月13日 · 2411 次阅读

我用 4.2.0 版本的 paperclip,但是有个奇怪的问题。在本地一个 mac 上测试了一下。下面是测试的结果。 我把 text file 的文件名的后缀改为.bbb。

file -b --mime foo.txt
file -b --mime foo.bbb

返回的结果都是text/plain; charset=us-ascii。但是文件用 paperclip 上传后,

  Parameters: {"utf8"=>"✓", "authenticity_token"=>"nHwsapqHH1aSzNCklCPOF/+ZIdHRHfB7brs8AXGbNXA=", "user"=>{"file"=>#<ActionDispatch::Http::UploadedFile:0x007fb6eab7dc90 @tempfile=#<Tempfile:/var/folders/p0/h3hpl0b57bx2n7psk7jmsftr0000gn/T/RackMultipart20140712-60821-zw8oif>, @original_filename="foo.bbb", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"user[file]\"; filename=\"foo.bbb\"\r\nContent-Type: application/octet-stream\r\n">}, "commit"=>"Create user"}
Command :: file -b --mime '/var/folders/p0/h3hpl0b57bx2n7psk7jmsftr0000gn/T/acbd18db4cc2f85cedef654fccc4a4d820140712-60821-1dx8tbm.bbb'

这里 content type 变成了"application/octet-stream",应该是“text/plain”;如果是foo.txt,content type 就是"text/plain"。用命令 file,得出来的 mime type 都是"text/plain",为什么上传后,content type 就变化了?这个是什么问题?如何解决?

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号