我正在处理一个现有的项目。我使用jQueryUploadify插件来上传文件。以下按钮代码用于上传文件:
<div>
<input width="167" type="file" height="47" name="file_upload" class="file_upload" id="file_upload" style="display: none;">
<object width="167" height="47" type="application/x-shockwave-flash" data="/uploadify/uploadify.swf" id="file_uploadUploader" style="visibility: visible;"><param name="quality" value="high">
<param name="wmode" value="transparent">
<param name="allowScriptAccess" value="sameDomain">
<param name="flashvars" value="uploadifyID=file_upload&pagepath=/en/media-maker/&script=/en/media-maker/upload/file&folder=&scriptData=level%3D1%26folderid%3D15%26symfony%3Dbtt461h1nor36k2taotp6jhku4&width=167&height=47&wmode=transparent&method=POST&queueSizeLimit=20&simUploadLimit=1&hideButton=true&fileDesc=Image / Video / Audio&fileExt=*.jpg;*.jpeg;*.gif;*.png;*.bmp;*.svg;*.avi;*.divx;*.dvx;*.dv;*.asf;*.asx;*.3gp;*.3g2;*.3ivx;*.3vx;*.mov;*.mp4;*.m4v;*.mpg;*.mpeg;*.qt;*.rm;*.swf;*.wmv;*.mkv;*.mts;*.part;*.mp3;&multi=true&auto=true&sizeLimit=524288000&fileDataName=Filedata&queueID=uploadList">
</object>
</div>
我的问题是,当我刷新网页时,这个按钮出现得很晚。此按钮仅在整个页面上传后显示。有时此按钮不会出现在某些浏览器上,并且internet连接速度较慢。如何使它看起来更快?
感谢
首先,为什么要使用flash?杀死flash,做一个纯jQueryPHPAJAX实现,并使用一个图像使按钮看起来很漂亮。Flash真的应该只限于视频播放器,即使这样,HTML5也不会再出现这种情况。
我刚查了uploadify,你肯定应该选择一个不同的工具。避免使用闪光灯。我已经从事网络开发专业5年了,如果你算上我刚开始把它作为一种爱好的话,我已经做了10年了。我可以根据个人经验告诉你,当涉及到闪光灯时,只需说不。
下面我列出了我在另一个StackOverflow答案中找到的替代方案列表(http://stackoverflow.com/questions/4072889/uploadify-alternative-need-to-upload-large-1gb-files)。据我所见,我认为"Plupload"answers"jQueryAJAX文件上传"看起来不错。
- Plupload
- Valums AJAX上传程序
- 使用jQuery的AJAX多文件上传表单
- jQuery AJAX文件上传
- jQuery多文件上传插件
- Digitalarld Swiff AJAX上传程序
- jQUploader
- AJAX文件上传
如果<object>
是您的按钮,并且它是某种.swf闪存文件。。。浏览器在从/uploadify/uploadify.swf
下载整个内容之前无法显示它。。。更不用说它必须启动flash插件才能呈现一个简单的按钮。这就是它慢的原因。
我不能说我会提倡使用flash文件作为按钮,因为CSS现在已经得到了这么多浏览器的支持。我甚至可以说这完全是无稽之谈。