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 file
或 which file
等命令来验证这一点)。如果您在 Ubuntu 运行 sudo apt remove file
然后尝试上传文件,将导致与上述相同的错误消息。
如果您想在 Windows 上使用 Paperclip,根据 this section,您应该手动安装 file
并将路径添加到您的环境变量:
- 从 this URL
下载并安装文件
- 转到 GnuWin32 目录并 运行
file.exe
测试它是否有效。
- Add file.exe path to your PATH variable 或将
Paperclip.options[:command_path] = 'C:\Program Files (x86)\GnuWin32\bin
添加到您的 config/environments
我尝试使用回形针上传图片时遇到问题 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 file
或 which file
等命令来验证这一点)。如果您在 Ubuntu 运行 sudo apt remove file
然后尝试上传文件,将导致与上述相同的错误消息。
如果您想在 Windows 上使用 Paperclip,根据 this section,您应该手动安装 file
并将路径添加到您的环境变量:
- 从 this URL 下载并安装文件
- 转到 GnuWin32 目录并 运行
file.exe
测试它是否有效。 - Add file.exe path to your PATH variable 或将
Paperclip.options[:command_path] = 'C:\Program Files (x86)\GnuWin32\bin
添加到您的 config/environments