Windows 10中的纸夹文件上载问题

时间:2018-03-10 08:31:16

标签: ruby-on-rails paperclip image-upload

当我尝试使用paperclip gem上传图像时遇到了问题。 它在我的ubuntu系统上工作正常,但在Windows 10上却没有。 Rails version = 5.1.2 Ruby version = 2.2.6p396 paperclip = 5.2.1

  

[paperclip]试图将C:/ Users /.../ Temp / c935d187f0b998ef720390f85014ed1e20180310-5860-1yxm99j.png链接到C   :/用户/.../温度/ c935d187f0b998ef720390f85014ed1e20180310-5860-1mjjyje.png   [paperclip]链接失败,文件存在@sys_fail2 - C:/ Users /.../ Temp / c935d187f0b998ef720390f85014ed1e20   180310-5860-1mjjyje.png;复制链接C:/ Users /.../ Temp / c935d187f0b998ef720390f85014ed1e20180310-5860-1yxm9   9j.png到C:/ Users /.../ Temp / c935d187f0b998ef720390f85014ed1e20180310-5860-1mjjyje.png   Command :: file -b --mime“C:/ Users /.../ Temp / c935d187f0b998ef720390f85014ed1e20180310-5860-1mjjyje.png”   [paperclip] Content Type Spoof:Filename Dog.png(来自Headers的image / png,来自Extension的[“image / png”]),从文件命令中发现的内容类型:。请参阅文档以允许此组合。

提前致谢。

1 个答案:

答案 0 :(得分:1)

正如你在这里看到的那样:

  

[paperclip]内容类型欺骗:Filename Dog.png(来自Headers的image / png,来自Extension的[“image / png”]),从文件命令中发现的内容类型:。请参阅文档允许这种组合。

Paperclip(或者更确切地说,用于标识Content-Type的file -b --mime命令)无声地失败,因此会留下空字符串。

它在Ubuntu上运行正常,因为file程序包含在您的发行版中(您可以使用man filewhich file等命令进行验证。如果您在Ubuntu上运行sudo apt remove file然后尝试上传文件,则会产生与上述相同的错误消息。

如果您想在Windows上使用Paperclip,根据this section,您应手动安装file并添加环境变量的路径:

  1. 下载&从this URL
  2. 安装文件
  3. 转到GnuWin32目录并运行file.exe以测试它是否有效。
  4. Add file.exe path to your PATH variable或将Paperclip.options[:command_path] = 'C:\Program Files (x86)\GnuWin32\bin添加到您的配置/环境