Plupload 与 Ruby on Rails 一起工作?
Posted
技术标签:
【中文标题】Plupload 与 Ruby on Rails 一起工作?【英文标题】:Plupload works with Ruby on Rails? 【发布时间】:2011-01-16 17:18:02 【问题描述】:我尝试按照以下示例进行操作: http://www.plupload.com/example_custom.php
但在请求中,文件并没有发送给控制器的方法,只有名称。
也许我需要在Plupload的配置中设置,比如'multipart = true'
有什么想法吗?
【问题讨论】:
您能否告诉我们您要为表单使用的网址 - 以及控制器+方法名称是什么? 控制器是 admin/file_controller。在 plupload 我设置: url:'/admin/file/upload' Plupload 支持分块,这需要在服务器上特别注意 - 最终文件基本上应该由单独的块手动构建(这种服务器端处理程序的示例包含在 Plupload 包中)。否则 - 是的,您基本上可以将 - multipart 设置为 true,您将获得标准上传。 【参考方案1】:这个问题是很久以前的问题了。但会为其他寻求解决方案的人回答。
解决方案是在您的 pluploadQueue() 函数中添加“multipart : true”。这会将文件作为多部分发送。对于多个文件,它将多次发送/POST 请求。然后你可以在你的控制器上处理它。
希望这会有所帮助。
贾斯
【讨论】:
如何更改文件帖子名称参数?它默认为“文件”。可以将其更改为一些自定义参数吗?有任何可用的配置选项吗? 是的,有:file_data_name 选项。【参考方案2】:我没有使用 Plupload 的经验我认为您不必在插件配置中明确处理分段上传。 (毕竟那是一个文件上传器库。)不要误会我的意思,但是您是否在 html 标记中将 multipart 属性设置为 true?
【讨论】:
通常在正常的上传表单中,我写的是':html=>(:multipart => true)'。例如,对于 SWFUpload (swfupload.org),我必须在其配置中指定 'post_params:("authenticity_token":""',否则我会收到错误。但是在 rails 日志中使用 Plupload 我没有错误,使用 Firebug 我看到文件已发送到控制器,但是当我调用“logger.debug params.inspect”时,我只有文件名。【参考方案3】:W3C 声明这是用于文件上传...
<FORM action="http://server.com/cgi/handle"
enctype="multipart/form-data"
method="post">
<P>
What is your name? <INPUT type="text" name="submit-name"><BR>
What files are you sending? <INPUT type="file" name="files"><BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</FORM>
【讨论】:
【参考方案4】:我们可以再看一些代码吗?有很多可能会出错。
另外,您可以在表单提交后使用调试器并在此处发布参数输出吗?
J
附:顺便说一句,试图将此作为评论,但没有成功...
【讨论】:
您的声望必须在 50 以上才能离开 cmets。 知道了,我不能信任 47 的声誉 :)【参考方案5】:一些“任何”想法... :-p
您尝试上传的文件是否有可能被 Rails 中的某些安全功能、rails 代理服务器(apache?),甚至客户端的某些软件过滤?
您是否尝试过不同的浏览器,以确认这不是客户端问题? (嗅探您的网络连接可能是另一种验证文件是否实际发送到服务器的方法)
如果您碰巧使用 rack,那么有一些中间件可以为您处理文件上传。不是您想要的,但在等待时作为临时解决方法可能很有用,以防您发现必须等待 rails 或 plupload 中的一些错误修复。
上传文件的文件夹权限?还是他们先进入内存,然后再写入磁盘?也许 plupload 库在某处使用了临时文件,并且权限在那里不起作用。
【讨论】:
还有一个可能的线索:“变量名称必须是名称和块”——据说你的 Rails 变量?我并没有真正得到错误报告:github.com/moxiecode/plupload/…以上是关于Plupload 与 Ruby on Rails 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章
paypal 与 ruby on rails 集成的“zoid 破坏了所有错误”
如何将 HSQLDB 与 Ruby on Rails 一起使用。