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

首先要明白 理解 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)
                    }

                })
            })
相关推荐
38242782710 分钟前
python:输出JSON
前端·python·json
2503_9284115616 分钟前
12.22 wxml语法
开发语言·前端·javascript
光影少年32 分钟前
Vue2 Diff和Vue 3 Diff实现及底层原理
前端·javascript·vue.js
傻啦嘿哟41 分钟前
隧道代理“请求监控”实战:动态调整采集策略的完整指南
前端·javascript·vue.js
JIngJaneIL41 分钟前
基于java + vue个人博客系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
C_心欲无痕1 小时前
vue3 - readonly创建只读的响应式对象
前端·javascript·vue.js
Rabi'1 小时前
编译ATK源码
前端·webpack·node.js
TG:@yunlaoda360 云老大1 小时前
华为云国际站代理商备份策略设置过程中遇到问题如何解决?
服务器·数据库·华为云
SoaringHeart1 小时前
Flutter组件封装:视频播放组件全局封装
前端·flutter
手揽回忆怎么睡1 小时前
Alibaba Linux 8安装jdk25
linux·运维·服务器