Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
轨道3和x2B;回形针&x2B;windows+;文件名编码问题_Windows_Ruby On Rails 3_Paperclip - Fatal编程技术网

轨道3和x2B;回形针&x2B;windows+;文件名编码问题

轨道3和x2B;回形针&x2B;windows+;文件名编码问题,windows,ruby-on-rails-3,paperclip,Windows,Ruby On Rails 3,Paperclip,我使用rails 3和回形针插件来附加文件 我有两种型号: 秩序 订单附件: 属于:秩序 已附上文件:doc 我试图通过回形针将文件附在订单上 当我附加英文或数字文件名的文件时,一切都很好: 但是当我附加带有俄文文件名的文件时,会发生以下错误: 回形针将文件保存到D:/my_project\u path/public/system/docs/94/original/Пцццц.txt(我可以通过浏览器打开),但在创建的数据库中没有记录。也许编码有问题 我使用: Windows7专业版x

我使用rails 3和回形针插件来附加文件

我有两种型号:

  • 秩序
  • 订单附件:
    • 属于:秩序
    • 已附上文件:doc
我试图通过回形针将文件附在订单上

当我附加英文或数字文件名的文件时,一切都很好:

但是当我附加带有俄文文件名的文件时,会发生以下错误:

回形针将文件保存到D:/my_project\u path/public/system/docs/94/original/Пцццц.txt(我可以通过浏览器打开),但在创建的数据库中没有记录。也许编码有问题

我使用:

  • Windows7专业版x64
  • PostgreSQL 9.0(UTF-8数据库编码)
  • Ruby 1.9.2
  • RubyonRails 3.0.7
  • 回形针2.3.11

谢谢您的帮助。

正如我所说的,回形针保存附件,rails创建有效的请求,但回形针源中的某些内容在Windows下出现

第42行中的C:\Ruby192\lib\ruby\gems\1.9.1\gems\paperclip-2.3.11\lib\paperclip\storage\filesystem.rb源文件捕获异常

def flush#u写入#:nodoc:
@排队等待写入。每个do样式名称、文件|
file.close
FileUtils.mkdir\u p(File.dirname(路径(样式名称)))
日志(“保存#{path(样式名称)}”)
mv(file.path,path(style_name))
chmod(0644,路径(样式名称))
结束
@排队等待写入={}
结束
我将此功能更改为:

def flush#u写入#:nodoc:
@排队等待写入。每个do样式名称、文件|
file.close
FileUtils.mkdir\u p(File.dirname(路径(样式名称)))
日志(“保存#{path(样式名称)}”)
mv(file.path,path(style_name))
开始
chmod(0644,路径(样式名称))
营救错误号::enoint
日志(“Errno::enoint在#{ENV['OS']}上被捕获”)
结束
结束
@排队等待写入={}
结束
这个解决方案对我有效。现在,服务器日志输出为:

SQL(1.0ms)插入“订单附件”(“订单id”、“创建日期”、“更新日期”、“文档文件名”、“文档内容类型”、“文档文件大小”、“文档更新日期”)值(14,'2011-06-08 18:44:25.853559'、'2011-06-08 18:44:44:25.853559'、'ППцц.doc'、'application/msword',292352,'2011-06-08 18:44:25.727552')返回“id”
[回形针]保存附件。
[回形针]保存D:/my_project_path/public/system/docs/199/original/ПццМц.doc
[回形针]错误号::Windows上未捕获任何回形针-->!!!这就是我们的例外!!!
SQL(3.0ms)提交
在287ms内完成200 OK(视图:13.0ms |活动记录:15.0ms)
从“ППццц.txt”到“╨а╤Я╨б╨В╨а╤С╨а╤Ш╨а┬╡╨б╨b.txt“»肯定是编码问题。
  SQL (0.0ms)  INSERT INTO "order_attachments" ("order_id", "created_at", "updated_at",  "doc_file_name", "doc_content_type", "doc_file_size", "doc_updated_at") VALUES (1, '2011-06-08 11:07:22.108523', '2011-06-08 11:07:22.108523', 'Example.txt', 'text/plain', 22, '2011-06-08 11:07:22.105523') RETURNING "id"
[paperclip] Saving attachments.
[paperclip] saving D:/my_project_path/public/system/docs/93/original/Example.txt
  SQL (1.0ms)  COMMIT
Completed 200 OK in 229ms (Views: 21.0ms | ActiveRecord: 7.0ms)
SQL (1.0ms)  INSERT INTO "order_attachments" ("order_id", "created_at", "updated_at", "doc_file_name", "doc_content_type", "doc_file_size", "doc_updated_at") VALUES (1, '2011-06-08 11:26:43.040925', '2011-06-08 11:26:43.040925', 'Пример.txt', 'text/plain', 26, '2011-06-08 11:26:43.035924') RETURNING "id"
[paperclip] Saving attachments.
[paperclip] saving D:/my_project_path/public/system/docs/94/original/Пример.txt
  SQL (0.0ms)  ROLLBACK
Completed   in 161ms

Errno::ENOENT (No such file or directory - D:/my_project_path/public/system/docs/94/original/╨а╤Я╨б╨В╨а╤С╨а╤Ш╨а┬╡╨б╨В.txt):
  app/controllers/orders_controller.rb:138:in `attachment'