我的表单中有两个uploadify实例。你会在下面找到定义。
两个触发上传的按钮。图像按钮是唯一与问题相关的按钮:
$( "#btnimageupload" ).button().click(function()
{
$('#picbrowse').uploadifySettings( 'scriptData', ({ 'isSelected': $( '#selectImage' ).val() }));
$('#picbrowse').uploadifyUpload();
});
现在,就是问题:
单击btnimageupload按钮时,图像无法上传。进度条转到100并停止。没有错误,javascript或其他。
但是,当我禁用vdobrowse文件输入框及其相应的脚本时,一切正常。上传图像并传输数据。
这是一个棘手的部分...如果我没有在btnimageupload点击处理程序上传递scriptData,图像将上传甚至页面上的vdobrowse文件输入框。
所以在我看来,当页面上有多个uploadify实例时,scriptData会破坏uploadify。
任何人都知道如何解决这个问题?
上传定义
$('#picbrowse').uploadify(
{
uploader : 'script/uplodify/uploadify.swf',
script : '../../dopost.php',
cancelImg : 'script/uplodify/cancel.png',
folder : '/images',
queueID : 'picqueue',
auto : false,
multi : true,
fileDesc : 'Image Files',
fileExt : '*.gif;*.jpg;',
queueSizeLimit: 5,
scriptData:
({
'action': 'upload_image',
}),
onComplete: function( event, queueID, fileObj, response, data )
{
console.log( reponse)
}
});
$('#vdobrowse').uploadify(
{
uploader : 'script/uplodify/uploadify.swf',
script : '../../dopost.php',
cancelImg : 'script/uplodify/cancel.png',
folder : '/video',
queueID : 'vdoqueue',
auto : false,
multi : true,
fileDesc : 'Video Files',
fileExt : '*.avi;*.mpg;*.mov;*.mp4;*.mpeg;*.flv;*.mkv;*.wmv',
queueSizeLimit: 5,
scriptData:
{
action: 'upload_video'
},
onComplete: function( event, queueID, fileObj, response, data )
{
console.log( response );
}
});
答案 0 :(得分:1)
该插件似乎正在推出 全球空间的选择,即 为什么当你使用两个或更多 uploadify与scriptData一起使用 拿起最后一个存储的值 scriptData。
我看到在一个上面运行两个uploadify 这是一个毫无意义的运动 我从来没有测试过功能 多个uploadify的。 uploadifySettings与之完美配合 一个uploadify。多个uploadify的 是演示页面来演示 不同的设置可能。
那说,它显然仍然是一个 用户的问题,我们需要 为那些想要使用的人修复它 多个uploadify在同一页面上。
我建议使用swfUpload。我在我的项目中使用并使用多个实例进行测试,它的工作非常完美。所以swfUpload易于理解,api看起来像uploadify api。
答案 1 :(得分:1)
鉴于页面上的scriptData和多个Uploadifys似乎存在限制,您可以做的是跳过scriptData和文件夹属性并解析dopost.php中的文件类型并根据它执行操作。 / p>
例如:
$fileParts = pathinfo($_FILES['Filedata']['name']);
$extension = strtolower($fileParts['extension']);
switch($extension){
case "gif" | "jpg":
// Do Image Upload Action
break;
case "avi" | "mpg" | "mov" | "mp4" | "mpeg" | "flv" | "mkv" | "wmv":
// Do Video Upload Action
break;
}
答案 2 :(得分:1)
我收到了scripData就好了,我在my website上做了一个例子 出于显而易见的原因,我已将上传大小限制为500KB并更正了代码:
$('#picbrowse').uploadify(
{
uploader : 'uploadify.swf',
script : 'uploadify.php',
cancelImg : 'cancel.png',
folder : 'uploads/images',
queueID : 'picqueue',
auto : false,
multi : true,
removeCompleted : false,
fileDesc : 'Image Files',
fileExt : '*.gif;*.jpg',
sizeLimit : 512000,
queueSizeLimit: 5,
scriptData: {action: 'upload_image'},
onComplete: function( event, queueID, fileObj, response, data )
{
$ul.html('');
var json = jQuery.parseJSON(response);
$.each(json,function(k,v){
var li = "<li>"+k+": "+v+"</li>";
$ul.append(li);
});
},
onError: function (event,ID,fileObj,errorObj) {
console.log(errorObj.type + ' Error: ' + errorObj.info);
}
});
$('#vdobrowse').uploadify(
{
uploader : 'uploadify.swf',
script : 'uploadify.php',
cancelImg : 'cancel.png',
folder : 'uploads/video',
queueID : 'vdoqueue',
auto : false,
multi : true,
sizeLimit : 512000,
fileDesc : 'Video Files',
fileExt : '*.avi;*.mpg;*.mov;*.mp4;*.mpeg;*.flv;*.mkv;*.wmv',
queueSizeLimit: 5,
scriptData: {action: 'upload_video'},
onComplete: function( event, queueID, fileObj, response, data )
{
$ul.html('');
var json = jQuery.parseJSON(response);
$.each(json,function(k,v){
var li = "<li>"+k+": "+v+"</li>";
$ul.append(li);
});
}
});
我正在使用标准的uploadify.php并回显POST变量:
echo json_encode($_POST);