jQuery uploadify上传插件修改为ajax上传

网极科技1年前代码笔记376

近期客户找到我们升级他们的老古董系统,这个系统创建于十几年前,使用了大量过时老旧的组件,需要更新替换,其中就包括了让很多程序员头疼的Flash组件。
本篇文章记录下如何将jQuery uploadify上传插件修改为ajax上传。
jQuery uploadify插件基于 Flash,这会导致它在不支持 Flash 的浏览器(例如较新版本的 Chrome 浏览器)上无法正常工作。

如果你希望上传功能在所有现代浏览器上均能正常使用,我建议你使用 HTML5 提供的文件 API 进行文件上传,而不是依赖 uploadify 插件。

这里给出一个如何使用 jQuery Ajax 与 HTML5 进行文件上传的基础例子:

<input type="file" id="fileInput"/>
<button type="button" id="uploadButton">上传文件</button>

以下是jQuery处理文件上传的代码:

$('#uploadButton').click(function(){
    var fileInput = $('#fileInput')[0];
    var file = fileInput.files[0];
    var formData = new FormData();
    formData.append('file', file);

    $.ajax({
        url: 'your-upload-url',   // 上传地址
        type: 'POST', 
        data: formData,
        processData: false,  // 不处理数据
        contentType: false   // 不设置内容类型
    }).done(function(res) {
       console.log(res);
    }).fail(function(res) {
        console.log("文件上传失败");
    });
});

这段代码基于 HTML5 的文件 API 实现文件上传,所有现代浏览器包括 Chrome 都支持 HTML5,所以不会存在兼容性问题。同时,对于不支持 JavaScript 和 Ajax 的古老或特殊浏览器,你应该提供退化处理,例如服务器端接收 POST 提交的上传。

我们可以先判断下是否支持flash

function hasFlash() {
    var plugin = navigator.plugins['Shockwave Flash'];
    if(plugin) {
        return true;
    }

    // 对于IE,需要使用ActiveXObject而不是Plugin
    try {
        var flash = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
        if(flash) {
            return true;
        }
    } catch (e) {}

    return false;
}

如有类似技术需求可联系QQ:706448591

相关文章

用伪静态防止恶意下载网站目录下的压缩包

用伪静态防止恶意下载网站目录下的压缩包

起因很多黑客用恶意工具扫描网站目录下的压缩包文件,进行批量下载,导致带宽占满,有时候该压缩包还有可能是网站备份文件,损失不可估量,所以用伪静态的方法,拦截压缩包的后缀,可以起到比较好的效果 抛砖引玉...

将网页文字保存为Word文档的PHP代码

将网页文字保存为Word文档的PHP代码

以下是将网页文字保存为Word文档的PHP代码示例: <?php // 获取网页内容并保存为Word文件 function saveAsWord($url, $fileName) {...

Thinkphp6配置支付宝MD5网页支付和微信支付V2NATIVE扫码支付(未引用第三方依赖,无需使用Composer)

Thinkphp6配置支付宝MD5网页支付和微信支付V2NATIVE扫码支付(未引用第三方依赖,无需使用Composer)

支付宝MD5支付方式简单好用,虽然官方给出了下线通知,但因为用户量巨大,估计也是会长期可用的,但是文档缺失,目前仅有如下文档:https://opendocs.alipay.com/open/66/1...

如何用一个桌面客户端管理多个宝塔面板

如何用一个桌面客户端管理多个宝塔面板

宝塔新出了一个桌面客户端“堡塔多机管理”,可以免费绑定多个宝塔面板统一管理。软件地址:https://www.bt.cn/new/product_pc.html效果图:多机管理效率提升了不少,而且提供...

table表格css样式

table表格css样式

效果图 table { border-collapse: collapse; margin: 0 auto;...

不懂技术也能将网页制作成Windows桌面exe文件

不懂技术也能将网页制作成Windows桌面exe文件

基于electron将网页制作成Windows桌面exe文件,使用开源的nativefier可以简单将网页打包成Windows桌面exe文件效果如下图:nativefier开源地址: https:/...