当前位置:首页 > jquery

jquery文件上传

2026-01-14 16:30:33jquery

jQuery 文件上传实现方法

基础文件上传实现

使用 jQuery 结合 HTML5 的 FormData 对象可以实现异步文件上传。创建一个包含文件输入的表单:

<form id="uploadForm" enctype="multipart/form-data">
    <input type="file" name="file" id="fileInput">
    <button type="submit">上传</button>
</form>

jQuery 代码处理表单提交:

$('#uploadForm').submit(function(e) {
    e.preventDefault();
    var formData = new FormData(this);

    $.ajax({
        url: 'upload.php',
        type: 'POST',
        data: formData,
        processData: false,
        contentType: false,
        success: function(response) {
            console.log('上传成功', response);
        },
        error: function(xhr, status, error) {
            console.error('上传失败', error);
        }
    });
});

多文件上传实现

允许选择多个文件并一次性上传:

<input type="file" name="files[]" id="fileInput" multiple>

修改 jQuery 代码处理多文件:

var formData = new FormData();
var files = $('#fileInput')[0].files;

for (var i = 0; i < files.length; i++) {
    formData.append('files[]', files[i]);
}

进度条显示

使用 xhr 对象显示上传进度:

$.ajax({
    xhr: function() {
        var xhr = new window.XMLHttpRequest();
        xhr.upload.addEventListener('progress', function(e) {
            if (e.lengthComputable) {
                var percent = Math.round((e.loaded / e.total) * 100);
                $('#progressBar').css('width', percent + '%');
            }
        }, false);
        return xhr;
    }
});

文件验证

在上传前验证文件类型和大小:

var file = $('#fileInput')[0].files[0];
var validTypes = ['image/jpeg', 'image/png'];
var maxSize = 2 * 1024 * 1024; // 2MB

if ($.inArray(file.type, validTypes) < 0) {
    alert('不支持的文件类型');
    return false;
}

if (file.size > maxSize) {
    alert('文件大小超过限制');
    return false;
}

使用 jQuery 文件上传插件

对于更复杂的需求,可以使用专门的 jQuery 文件上传插件如 jQuery File Upload:

  1. 引入插件文件:

    <script src="js/vendor/jquery.ui.widget.js"></script>
    <script src="js/jquery.iframe-transport.js"></script>
    <script src="js/jquery.fileupload.js"></script>
  2. 基本配置:

    $('#fileInput').fileupload({
     url: 'upload.php',
     dataType: 'json',
     done: function(e, data) {
         $.each(data.result.files, function(index, file) {
             $('<p/>').text(file.name + ' 上传成功').appendTo('#files');
         });
     }
    });

服务器端处理示例(PHP)

$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["file"]["name"]);

if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
    echo json_encode(['status' => 'success', 'file' => $targetFile]);
} else {
    echo json_encode(['status' => 'error']);
}

jquery文件上传

分享给朋友:

相关文章

jquery实现vue

jquery实现vue

jQuery 和 Vue.js 是两种不同理念的前端工具,jQuery 以 DOM 操作和事件驱动为核心,而 Vue.js 是数据驱动的现代化框架。如果想用 jQuery 实现类似 Vue 的功能(如…

jquery下载

jquery下载

jQuery下载方法 官方下载渠道 访问jQuery官网(https://jquery.com/),点击页面中的“Download”按钮。提供两个版本选择: Production版本:压缩后的…

jquery插件库

jquery插件库

jQuery插件库推荐 jQuery插件库提供了丰富的扩展功能,帮助开发者快速实现常见的前端交互效果。以下是一些常用的jQuery插件库和资源: 1. 官方jQuery插件注册中心jQuery Pl…

jquery插件

jquery插件

jQuery 插件开发指南 jQuery 插件是一种扩展 jQuery 功能的模块化方式,允许开发者封装可重用的代码。以下是开发和使用 jQuery 插件的基本方法。 插件基本结构 jQuery 插…

jquery下载

jquery下载

jQuery下载方法 官方渠道下载 访问jQuery官网(https://jquery.com/),点击首页的“Download”按钮。页面提供两个版本: Production:压缩版(min…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取…