windows 10 中的回形针文件上传问题

Paper clip file upload issue in windows 10

我尝试使用回形针上传图片时遇到问题 gem。 它在我的 ubuntu 系统上运行良好,但在 windows 10 上运行不正常。 Rails version = 5.1.2 Ruby version = 2.2.6p396 paperclip = 5.2.1

[paperclip] Trying to link C:/Users/.../Temp/c935d187f0b998ef720390f85014ed1e20180310-5860-1yxm99j.png to C :/Users/.../Temp/c935d187f0b998ef720390f85014ed1e20180310-5860-1mjjyje.png [paperclip] Link failed with File exists @ sys_fail2 - C:/Users/.../Temp/c935d187f0b998ef720390f85014ed1e20 180310-5860-1mjjyje.png; copying link C:/Users/.../Temp/c935d187f0b998ef720390f85014ed1e20180310-5860-1yxm9 9j.png to 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 (image/png from Headers, ["image/png"] from Extension), content type discovered from file command: . See documentation to allow this combination.

提前致谢。

如您所见:

[paperclip] Content Type Spoof: Filename Dog.png (image/png from Headers, ["image/png"] from Extension), content type discovered from file command: . See documentation to allow this combination.

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 添加到您的 config/environments