Uploadify和flash问题上传到远程服务器

时间:2011-01-31 23:38:53

标签: javascript jquery flash uploadify

我正在尝试使用uploadify将图像上传到远程服务器。我已经为跨脚本问题或其他任何事情做了我能想到的一切。

这就是我所做的。

scriptgo访问uploadify函数中的“Always”。 我的ww2服务器上有一个crossdomain.xml,root用户也有uploadify.swf。 我已将我的javascript jquery lib文件上传到远程ww2服务器并将其放入标题中 我还将jquery.uploadify.js和swfobject.js放在根目录中。

如果我尝试单击X取消文件,则会收到错误:在NPObject上调用错误方法 或者上传也不起作用。

如果有人可以帮助解决这个问题,那就太棒了。如果有任何其他好的基于闪存或非基于闪存的多重上传器将执行远程文件没有问题,请告诉我。

由于

2 个答案:

答案 0 :(得分:4)

我设法自己搞清楚了。我会回答它只是因为其他人可能会遇到这个问题,因为即使在作者网站上也没有什么帮助。

我决定将Flash文件保留在同一台服务器(Web服务器)上,因为它似乎无法将其放在带有javscript文件的媒体服务器上。 js不起作用。 所以我的主服务器仍然在服务器上有uploadify文件夹,我只把我需要的php文件(uploader.php)处理在媒体服务器上的图像和该服务器根目录下的crossdomain.xml。 然后告诉参数设置中的uploadify指向该服务器上的uploader.php脚本。 之后,一切都像是一种魅力。我花了很长时间来搞清楚并通过了错误。现在我可以平衡我的媒体。 希望这有助于其他人。 Uploadify是一个非常好的多文件上传器。

答案 1 :(得分:2)

您需要更改uploadify.js中的代码:

/* Original code */
 uploadifyCancel:function(ID) {

                            jQuery(this).each(function() {



                               document.getElementById(jQuery(this).attr('id') + 'Uploader').cancelFileUpload(ID, true, true, false);

                            });

                       },




   /*New code */

    uploadifyCancel:function(ID){

                    jQuery(this).each(function(){

                        document.getElementById(jQuery(this).attr("id")+"Uploader").cancelFileUpload(ID,true,false)

                    });

                },



/*Original code */


                               jQuery(this).bind("uploadifyComplete", {

                                  'action': settings.onComplete

                                  }, function(event, ID, fileObj, response, data) {

                                  if (event.data.action(event, ID, fileObj, unescape(response), data) !== false) {

                                       jQuery("#" + jQuery(this).attr('id') + ID).find('.percentage').text(' - Completed');

                                       if (settings.removeCompleted) {

                                           jQuery("#" + jQuery(event.target).attr('id') + ID).fadeOut(250,function() {

                                               jQuery(this).remove()

                                               });

                                     }

                                     jQuery("#" + jQuery(event.target).attr('id') + ID).addClass('completed');

                                   }

                               });


/* New code */

 jQuery(this).bind("uploadifyProgress", {

                        'action': settings.onProgress,

                        'toDisplay': settings.displayData

                    }, function(event, ID, fileObj, data) {

                        if (event.data.action(event, ID, fileObj, data) !== false) {

                            jQuery("#" + jQuery(this).attr('id') + ID + "ProgressBar").animate({

                                'width': data.percentage + '%'

                            },250,function() {

                                if (data.percentage == 100) {

                                    jQuery(this).closest('.uploadifyProgress').fadeOut(250,function() {

                                        jQuery(this).remove()

                                    });

                                }

                            });

                            if (event.data.toDisplay == 'percentage') displayData = ' - ' + data.percentage + '%';

                            if (event.data.toDisplay == 'speed') displayData = ' - ' + data.speed + 'KB/s';

                            if (event.data.toDisplay == null) displayData = ' ';

                            jQuery("#" + jQuery(this).attr('id') + ID).find('.percentage').text(displayData);

                        }

                    });