我漫长而持久的网站即将完成。在回顾一些测试时,我注意到我的uploadify在所有浏览器上工作正常,除了firefox,这只发生在MAC机器上的firefox上。这很奇怪,但文件实际上上传很好,只是加载pregress栏%不会增加并保持在0直到脚本实际完成。请hellllpppp。代码对于所有浏览器都是相同的,它甚至可以在IE 8中运行。非常奇怪,我尝试过所有浏览器,PC和Mac。
更新:
我仍然苦心想要让它发挥作用。我使用了onUploadProgress回调函数
'onUploadProgress' : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
if(bytesUploaded > 10){
var test = "";
}
$('#progress').html(totalBytesUploaded + ' bytes uploaded of ' + totalBytesTotal + ' bytes.');
}
我试着看看它是否被调用。除了bytesUploaded = 0之外,我永远无法在调试器内调用它。出于某种原因,onUploadProgress在此过程中未启动。文件上传很好,但没有显示进度,这对用户来说是一个问题。
我还试图深入了解uploadify.js文件的内部工作原理,以找出它上传过程的位置,并发生同样的事情。以下是发生这种情况的代码。
function g(x,C,z){
var v=new Date();
var D=v.getTime();
var A=D-j.timer;
j.timer=D;
var y=C-j.bytesLoaded;
j.bytesLoaded=C;
var u=j.queue.queueBytesUploaded+C;
if(C > 100){
var TEST = "";
}
var F=Math.round(C/z*100);
var B=0;var w=(y/1024)/(A/1000);
w=Math.floor(w*10)/10;
if(j.queue.averageSpeed>0){
j.queue.averageSpeed=(j.queue.averageSpeed+w)/2
}else{
j.queue.averageSpeed=w
}
if(w>1000){
B=(w*0.001);
j.queue.averageSpeed=B
}
var E="KB/s";
if(B>0){
E="MB/s"
}
if(a.inArray("onUploadProgress",j.settings.skipDefault)<0){
if(j.settings.progressData=="percentage"){
a("#"+x.id).find(".data").html(" - "+F+"%")
}
else{
if(j.settings.progressData=="speed"){
a("#"+x.id).find(".data").html(" - "+F+E)
}
}
a("#"+x.id).find(".uploadifyProgressBar").css("width",F+"%")
}
if(j.settings.onUploadProgress){
j.settings.onUploadProgress(x,C,z,u,j.queue.uploadSize)
}
}
我试图将断点放在变量F设置的位置附近。该函数只在调试器0调用时调用,我想也许是因为那时文件已经上传但是也试图在代码中放置if语句只在上传的字节大于100时停止调试器,这是不是那么多,但似乎由于某种原因它在启动0字节后没有被调用。
我没有在控制台中看到与uploadify相关的任何错误。请你好!