使用PrototypeJs方法上传文件$('formId')。request()

时间:2010-02-28 19:57:24

标签: javascript file-upload prototypejs

我试图使用PrototypeJs请求方法上传文件,但我失败了。

我正在使用的代码,

<form enctype="multipart/form-data" id="form1" runat="server" action="ajax.aspx"
onsubmit="upMe(this);return false;" >

如果我返回true而不是false,则上传文件,但这会使我不想要的回发,因为我正在使用PrototypeJs的方法请求。

功能upMe非常简单,

function upMe(frmEle) {
        $(frmEle).request({
            method: 'post',
            parameters: {},
            onComplete: function() { alert('file has been uploaded'); }
        });
    }

以上述方式上传文件我缺少什么?

非常感谢你。

1 个答案:

答案 0 :(得分:3)

问题是您使用AJAX而不是普通的提交方法来发布表单。这将需要JavaScript来读取文件并将其包含在提交中,但是您可以想象脚本从客户端读取本地文件的能力将是一个很大的安全风险: - )

此问题的答案是使用隐藏的<iframe>元素,然后将请求提交给该元素。您可以将事件处理程序注册到iframe的onload事件,以进行不完整的样式回调。

http://www.openjs.com/articles/ajax/ajax_file_upload/