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

网极科技2年前代码笔记530

近期客户找到我们升级他们的老古董系统,这个系统创建于十几年前,使用了大量过时老旧的组件,需要更新替换,其中就包括了让很多程序员头疼的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

相关文章

php绕过cloudfare进行网址数据采集,php网页采集程序

php绕过cloudfare进行网址数据采集,php网页采集程序

程序功能本程序使用浏览器内核,可伪装浏览器,对任意网址进行数据采集,采集结果以php程序进行二次处理。 支持对于单个网址进行采集,可自由设置循环次数。可多开不受限制。程序会调用浏览器内核打开网页...

简单实用NSIS制作windows安装程序美化版

简单实用NSIS制作windows安装程序美化版

在使用electron将网站项目打包成桌面客户端后,制作exe安装包就是必须要做的了,通过使用QT、NSIS等制作工具,最后整理出来了一套美化版NSIS安装包制作流程。最终成品软件:链接:https:...

省市区四级地址编码下载_国家标准行政区划代码映射表【最后更新于2025年1月】

省市区四级地址编码下载_国家标准行政区划代码映射表【最后更新于2025年1月】

产品介绍:省市区四级地址编码_国家标准行政区划代码映射表最后更新于2025年1月产品概述本产品为 省市区四级地址编码与国家标准行政区划代码映射表,旨在为用户提供全面、准确、标准化的行政区划代...

centos设置计划任务 定时运行php文件

centos设置计划任务 定时运行php文件

1.新建一个sh文件,上传到服务器例如文件名为 cron.sh文件内容为 php test.php 2.给这个文件设置可执行权限chmod +x cron.sh 3.增加计划任务A、安装cron...

php通过日K计算周K、月K、季K、年K

php通过日K计算周K、月K、季K、年K

实现思路: 首先读取股票日K线数据,存储到数组中。然后分别计算周K、季K、月K的数据,存储到新的数组中。最后将转换后的数据保存到文件中,以备后续使用。 下面是实现代码的示例:【精选】PHP将股...

windows下composer简单使用

windows下composer简单使用

在windows下执行composer,可直接下载composer.phar文件,控制台运行即可此处下载composer.zip然后将该文件composer.phar放置到需要执行composer安装...