我第一次尝试使用Uploadify。我对实际上传的文件没有任何问题。这非常有效。我的问题是我的PHP脚本没有收到来自Uploadify的单个$ _REQUEST变量,这显然意味着我无法跟踪任何照片或删除应该删除的照片。这是我正在使用的:
$('.upload').uploadify({
'uploader' : 'uploadify/uploadify.swf',
'script' : 'upload.php',
'cancelImg' : 'uploadify/cancel.png',
'folder' : 'img/sections/' + page,
'auto' : true,
'multi' : false,
'method' : 'post',
'fileExt' : '*.jpg;*.jpeg;*.gif;*.png',
'onComplete': function(event, ID, fileObj, response, data) {
window.location.replace("upload.php");
}
});
我正在尝试通过在我的点击功能中设置输入字段ID到PHP脚本(每个字段显示当前照片,当您点击它时淡出并显示uploadify表单):
Uploader.clk = function() {
pic = $(this).find('input.upload').attr('id');
field = "#" + pic;
$(field).uploadifySettings('scriptData' : { 'field' : field });
// all my jQuery animations
}
当然,这对我不起作用,但是上传文档还有很多不足之处。我的问题肯定在uploadifySettings调用中,因为当我评论它所有其他的东西工作正常。即使我把
'scriptData':{'foo':'bar'}
在我的设置中,我仍然只在我的$ _REQUEST数组中获得一个sessionid和两个名为“utma”和“vsid”的字段。
所以我的问题是如何告诉我的PHP脚本它在哪个字段上执行操作?
答案 0 :(得分:0)
这里有两个问题,没有必要两次选择元素,你可以这样做:
$(this).find("input.upload").uploadifySettings(...);
你需要将你的设置作为对象传递(它只是当前的标签声明),如下所示:
Uploader.clk = function() {
$(this).find('input.upload')
.uploadifySettings({'scriptData' : { 'field' : field }});
// all my jQuery animations
}
另请注意,您per the documentation无论如何都需要使用onSelectOnce
:
如果通过
scriptData
更新uploadifySettings()
选项,则由于onOpen
的同步问题,它不会更新。相反,请使用onSelectOnce
功能在自动上传期间更改scriptData
变量。
总的来说,它应该是这样的:
$('.upload').uploadify({
'uploader' : 'uploadify/uploadify.swf',
'script' : 'upload.php',
'cancelImg' : 'uploadify/cancel.png',
'folder' : 'img/sections/' + page,
'auto' : true,
'multi' : false,
'method' : 'post',
'fileExt' : '*.jpg;*.jpeg;*.gif;*.png',
'onComplete': function(event, ID, fileObj, response, data) {
window.location.replace("upload.php");
},
'onSelectOnce': function(event,data) {
$(this).uploadifySettings({'scriptData' : { 'field' : field }});
}
});