Ruby 使用Mechanize上载文件失败

Ruby 使用Mechanize上载文件失败,ruby,mechanize-ruby,Ruby,Mechanize Ruby,我正在尝试使用Mechanize自动填写表单(包括文件上传)。我已经在GUI界面中完成了这个过程,文件上传很好,所以我知道文件没有损坏,但是当我运行mechanize脚本时,它失败了。脚本执行正确,并根据调试上传了文件,但Canvas(我上传到的服务)表示无法读取文件。我已经联系了Canvas支持,但他们无法提供帮助,因为这是他们系统的非标准使用 以下是脚本(已匿名): Canvas支持人员表示服务器正在返回: Could not unzip archive file, exit status

我正在尝试使用Mechanize自动填写表单(包括文件上传)。我已经在GUI界面中完成了这个过程,文件上传很好,所以我知道文件没有损坏,但是当我运行mechanize脚本时,它失败了。脚本执行正确,并根据调试上传了文件,但Canvas(我上传到的服务)表示无法读取文件。我已经联系了Canvas支持,但他们无法提供帮助,因为这是他们系统的非标准使用

以下是脚本(已匿名):

Canvas支持人员表示服务器正在返回:

Could not unzip archive file, exit status 9, message:     
[/mnt/var/web/migration_tool/data/attachment_420130214-13303-sv6ue5-0.jpg] End-of-central-
directory signature not found. Either this file is not a zipfile, or it constitutes one 
disk of a multi-part archive. In the latter case the central directory and zipfile comment 
will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in 
one of /mnt/var/web/migration_tool/data/attachment_420130214-13303-sv6ue5-0.jpg or 
/mnt/var/web/migration_tool/data/attachment_420130214-13303-sv6ue5-0.jpg.zip, and cannot 
find /mnt/var/web/migration_tool/data/attachment_420130214-13303-sv6ue5-0.jpg.ZIP, period.
不幸的是,这个错误对我来说毫无意义,但当脚本上载.zip文件时,它引用了几个.jpg,这似乎很奇怪。任何想法或帮助都将不胜感激,如果我遗漏了任何有用的信息,我很乐意提供更多信息


如果你真的想成为一名能干的人,你可以在注册一个免费帐户,亲自查看代码/网络活动。

确保你上传的文件类型正确无误

Content-Type: application/octet-stream

对于每种类型的文件,很可能服务器正在检查ContentType,并且与所需的内容类型不正确匹配,我不记得我使用的mechanize的确切版本,但对我来说,它是在mechanize gem中硬编码的,因此您必须查看mechanize的源代码,并修复它在多部分/表单数据文件中硬编码内容类型的位置元素。

这些文件是您试图上载的zip文件的一部分吗?此外,对于giggles,您是否尝试过在f.file_上载上设置mime_类型。首先,我尝试上载的.zip是从黑板学习管理系统导出的。我想我测试了mim_类型,但我将再次测试它以确定;设置
mime\u类型
似乎没有效果。我意识到zip是从黑板导出的,如果您手动解压缩它,您会得到上面错误日志中看到的内容吗?这些文件不会出现在zip的内容中。事实上,我所看到的这个特殊的zip没有任何jpg文件。
Content-Type: application/octet-stream