以前使用Prototype我可以序列化输入类型文件,它给了我正在上传的文件的文件名但是当我在jquery中序列化表单时,我只得到了输入类型的文本,而其他的不是文件,我该怎么办呢?
在Firebug花了几分钟之后,实际上有几种方法可以解决这个问题.例如,我能够从fileObject本身获取文件列表:
var file = $("#control").attr("files")[0]; var fileName = file.fileName; var fileSize = file.fileSize; alert("Uploading: "+fileName+" @ "+fileSize+"bytes");
显然,我可以读取序列化的值.但写作是另一个问题.
但显然这并不像其他人所说的那么容易.我冒昧地下载了Prototype源代码,无法找到将FileList数据用于File Upload对象的说明.
事实上,我在网上发现了一篇文章,其中列出了序列化文件上传对象本身的问题,声称没有AJAX库做得好(注意,这是在2007年写的).这个主题很有意思,看起来您可以使用任意数量的方法从文件上传中提取数据 - 规范本身包含足够的信息来指导您沿着这条路径前进.
我希望我能够回答你如何编写,并将文件添加到文件列表中,但此刻我和你一样迷失(或者在提出这个问题的时候).有了更多的阅读,这可能比我怀疑要容易得多 - 但目前我没有时间投资.
祝你好运.
W3C上的FileUpload
表格序列化由加勒特史密斯,2007年
原型1.6.1RC3来源(第3967行:Form.serializeElements开始)