我用 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 就变化了?这个是什么问题?如何解决?