我正在尝试为 jquery http://code.google.com/p/ocupload/wiki/Documentation使用“一键上传”插件
它是一个插件,可以将普通输入 type="file" 更改为您想要的任何元素,例如 div,因此当您单击此 div 时,将打开一个文件浏览器,允许您选择要上传的文件。然后它会提交一个涉及 iframe 的隐藏表单,我相信这个概念是众所周知的,但对我来说不是。
无论如何,到目前为止一切顺利......我有我的 div 可以打开一个文件浏览器。
The problem is that when a file is selected the plugin is supposed to auto-submit the form to an action which you define. 这似乎没有正确发生,我认为这可能与我的表单动作的目标有关。
因此,在我看来,要添加一个新的“瓷砖”,我有:
<div id="TileImageUpload">Upload an image</div>
然后将javascript附加到div:
$(document).ready(function(){
//one click image upload
var myUpload = $('#TileImageUpload').upload({
name: 'file',
action: '../tiles/uploadImage',
enctype: 'multipart/form-data',
params: {upload:'Upload'},
autoSubmit: true,
onSubmit: function() {
alert('submitted');
$('#upload_status').html('').hide();
loadingmessage('Please wait, uploading file...', 'show');
},
onComplete: function(response) {
alert(response);
},
onSelect: function() {}
});
});
在上面的 action 参数是指向我的 TilesController action=>uploadImage。看起来像:
function uploadImage() {
if ($_POST["upload"]=="Upload") {
return 'wooHoo';
} else {
return 'BooHoo';
}
}
请注意,我也尝试回显“WoHoo”等,但没有任何区别。
所以基本上,如果有一个成功的表单发布,那么它应该将 WooHoo 返回到 javascript,然后应该提醒它。
这不会发生。有谁知道为什么。就像我说的,我认为可能与表单动作有关,但我已经尝试了所有我能想到的方法。
该插件的实际 JS 并不大,可能会在此处发布所有内容。如果有善良的灵魂怜悯并想帮助我,它可以在我上面发布的链接上找到。