图片预览 图片上传到服务器

首先要明白 理解 multipart/form-data:multipart/form-data是一种在HTTP请求中使用的MIME类型,主要用于在客户端和服务器之间传输包含文件或二进制数据的表单数据。它通过一个边界(boundary)来分隔不同的表单字段和文件数据‌。

简单来说multipart/form-data类型用于form表单中确保文件内容完整传输

使用场景

multipart/form-data主要用于以下场景:

  • 文件上传 ‌:当表单中包含文件上传字段时,必须使用multipart/form-data编码方式,因为它可以将文件以二进制形式传输‌。
  • 二进制数据传输‌:除了文件,还可以传输其他二进制数据,如图片、音频等。

实际应用

在HTML表单中,enctype属性用于指定表单数据的编码方式。默认情况下,enctype的值为application/x-www-form-urlencoded,适用于文本数据的传输。但当需要上传文件时,必须将enctype设置为multipart/form-data,以确保文件内容能够完整传输‌

案例如下

<input type='file'>

<img src=''" alt ="用于图片预览">

<button type='button">确认上传</button>

html 复制代码
<div class="form-group">
                    <label for="inputPassword3" class="col-sm-2 control-label">景点图片:</label>
                    <div class="col-sm-10 d-flex">

                        <div style="display: flex;">
                            <input type="file" name="cover" id="inputFile">
                            <button type="button" class="btn btn-sm" id="sureUp">上传图片</button>
                        </div>
                        <img src="" id="yl" alt="">
                    </div>
                </div>

上传之后 先预览 在确定是否上传到服务器

‌**new FileReader()**‌ 是JavaScript中的一个内置对象,用于在客户端(浏览器)中异步读取文件内容。它提供了一种将文件内容读取到内存中以供处理的方式,适用于读取不同类型的文件,如文本文件、图像文件等。

var reader = new FileReader(); // 创建新的FileReader实例

reader.onload = function(){

获取文件内容函数

}

reader.readAsText(file); // 以文本格式读取文件内容

reader.readAsDataURL() //以base64 读取图片


javascript 复制代码
  var file = '';//用于存需要上传的图片
            $('#inputFile').change(function () {

                if (this.files && this.files[0]) {
                    file = this.files[0]
                    var reader = new FileReader();

                    reader.onload = function (e) {

                        $('#yl').attr('src', e.target.result);
                    };

                    reader.readAsDataURL(this.files[0]); // 读取文件内容
                }

            })

            $('#sureUp').click(function () {
                var formData = new FormData();
                formData.append('file', file);
                // file (后台接收的参数)
                $.ajax({
                    url: 'http://127.0.0.1:8088/api/upload', // 你的图片上传接口
                    type: 'POST',
                    data: formData,
                    contentType: false, // 不设置内容类型
                    processData: false, // 不处理发送的数据
                    success: function (response) {
                            console.log(res)
                    }

                })
            })
相关推荐
IT_陈寒2 分钟前
React 性能优化:5个实战技巧让首屏加载提升50%,开发者亲测有效!
前端·人工智能·后端
CryptoRzz5 分钟前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
wanhengidc16 分钟前
巨椰云手机引领未来
运维·服务器·网络·游戏·智能手机
wanhengidc17 分钟前
云手机的真实体验感怎么样
运维·服务器·安全·游戏·智能手机
rising start19 分钟前
前端基础一、HTML5
前端·html·html5
脏脏a23 分钟前
【Linux】Linux工具漫谈:yum 与 vim,高效操作的 “左膀右臂”
linux·运维·服务器
鬼谷中妖28 分钟前
JavaScript 循环与对象:深入理解 for、for...in、for...of、不可枚举属性与可迭代对象
前端
大厂码农老A33 分钟前
你打的日志,正在拖垮你的系统:从P4小白到P7专家都是怎么打日志的?
java·前端·后端
im_AMBER34 分钟前
CSS 01【基础语法学习】
前端·css·笔记·学习
DokiDoki之父38 分钟前
前端速通—CSS篇
前端·css