当前位置:首页 > jquery

jquery上传图片

2026-04-07 23:38:00jquery

jQuery 实现图片上传的方法

使用 FormData 和 AJAX

HTML 部分需要包含一个文件输入框和一个上传按钮:

<input type="file" id="fileInput" accept="image/*">
<button id="uploadBtn">上传图片</button>
<div id="preview"></div>

JavaScript 部分使用 jQuery 处理文件选择和上传:

jquery上传图片

$(document).ready(function() {
    $('#uploadBtn').click(function() {
        var file = $('#fileInput')[0].files[0];
        if (!file) {
            alert('请选择图片文件');
            return;
        }

        var formData = new FormData();
        formData.append('image', file);

        $.ajax({
            url: 'upload.php', // 替换为实际后端接口
            type: 'POST',
            data: formData,
            contentType: false,
            processData: false,
            success: function(response) {
                alert('上传成功');
                $('#preview').html('<img src="' + response.path + '">');
            },
            error: function() {
                alert('上传失败');
            }
        });
    });
});

图片预览功能

在文件选择后立即显示预览:

jquery上传图片

$('#fileInput').change(function() {
    var file = this.files[0];
    if (file) {
        var reader = new FileReader();
        reader.onload = function(e) {
            $('#preview').html('<img src="' + e.target.result + '">');
        }
        reader.readAsDataURL(file);
    }
});

后端处理示例 (PHP)

<?php
if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
    $tempPath = $_FILES['image']['tmp_name'];
    $uploadPath = 'uploads/' . basename($_FILES['image']['name']);

    if (move_uploaded_file($tempPath, $uploadPath)) {
        echo json_encode(['path' => $uploadPath]);
    } else {
        http_response_code(500);
    }
} else {
    http_response_code(400);
}
?>

进度条显示

添加上传进度监控:

$.ajax({
    // ...其他参数...
    xhr: function() {
        var xhr = new XMLHttpRequest();
        xhr.upload.addEventListener('progress', function(e) {
            if (e.lengthComputable) {
                var percent = Math.round((e.loaded / e.total) * 100);
                console.log(percent + '%');
            }
        }, false);
        return xhr;
    }
});

多文件上传支持

修改 HTML 和 JavaScript 以支持多文件:

<input type="file" id="fileInput" multiple accept="image/*">
var files = $('#fileInput')[0].files;
var formData = new FormData();
$.each(files, function(i, file) {
    formData.append('images[]', file);
});

注意事项

  • 确保服务器 uploads 目录有写入权限
  • 限制上传文件大小可在 php.ini 中设置 upload_max_filesize
  • 考虑添加文件类型验证
  • 生产环境应重命名上传文件避免冲突

分享给朋友:

相关文章

jquery教程

jquery教程

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。其核心特点是“写得更少,做得更多”(Write Les…

jquery 图表

jquery 图表

jQuery 图表库推荐 jQuery 本身不直接提供图表功能,但可以通过插件或集成其他库实现图表绘制。以下是几种常用的 jQuery 图表解决方案: Chart.js 集成 Chart.js 是一…

jquery图片

jquery图片

jQuery 图片操作 jQuery 提供了多种方法来处理图片,包括加载、显示、隐藏、动画效果等。以下是一些常见的 jQuery 图片操作方法: 动态加载图片 使用 jQuery 的 attr()…

下载jquery

下载jquery

下载 jQuery 的方法 官方网站下载 访问 jQuery 的官方网站 https://jquery.com,点击页面上的“Download”按钮。选择压缩版(minified)或未压缩版(unco…

jquery 弹出

jquery 弹出

jQuery 弹出窗口实现方法 jQuery 可以通过多种方式实现弹出窗口效果,以下是几种常见的方法: 使用 jQuery UI Dialog jQuery UI 提供了一个 Dialog 组件,可…

jquery滑动

jquery滑动

jQuery 滑动效果实现方法 使用 slideDown() 和 slideUp() slideDown() 用于向下滑动显示元素,slideUp() 用于向上滑动隐藏元素。两者均可设置动画持续时间(…