js之图片上传

简介: js之图片上传

话不多说,直接上干货,注释在代码里面

下面是效果图和代码

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
 
    <title>Document</title>
    <style>
      /* form 表单定位 */
      .form-upload {
        width: 200px;
        height: 200px;
        border: 1px solid red;
        margin: 200px auto;
        position: relative;
      }
 
      /* 相对于form 表单定位 设置提醒文字 位于 第五层 */
      .form-upload-text {
        position: absolute;
        z-index: 5;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }
 
      /* 相对于 form 表单定位 设置 点击范围位于最上层 第十层 */
      .form-upload-file {
        position: absolute;
        z-index: 10;
        width: 200px;
        height: 200px;
        background-color: orange;
        opacity: 0;
      }
 
      /* 相对于 form 表单 定位设置 位于 文字 与 文件中间展示 第八层 */
      .form-upload-imgs {
        position: absolute;
        z-index: 8;
        width: 200px;
        height: 200px;
      }
    </style>
  </head>
  <body>
    <form class="form-upload" id="formUpload" action="" method="post" enctype="multipart/form-data">
      <span class="form-upload-text" id="submitButton">上传图片</span>
      <input type="file" class="form-upload-file" name="image" size="50" onchange="fileChange(this)">
      <img src="" class="form-upload-imgs" alt="">
    </form>
    <script>
      var imgUrl = ''
 
      function fileChange(target) {
        // 点击 input 的时候
        if (target.tagName === 'INPUT') {
          // 获取 form 表单的 第一个元素
          var formData = new FormData($('#formUpload')[0])
          // 发送 ajax 
          $.ajax({
            // 类型
            type: "POST",
            // url  地址
            url: "xxxxxxx",
            // 表单数据
            data: formData,
            // 是否异步
            // async: false,
            // 请求头设置
            contentType: false,
            // processData 默认为true,当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data
            // 默认情况下会将发送的数据序列化以适应默认的内容类型application/x-www-form-urlencoded
            // 如果想发送不想转换的的信息的时候需要手动将其设置为false
            processData: false,
            // 成功的回调
            success: function(res) {
              console.log('图片 ----》 ', res)
              // 这里是 上传成功后 后台会返回 一个图片的绝对路径
              imgUrl = res.data.imgUrl
              // 找到 img 标签设置它的 图片路径
              $('.form-upload-imgs').attr('src', imgUrl)
            },
            // 失败的回调
            error: function(returndata) {
              console.log(returndata);
            }
          })
        }
 
      }
    </script>
  </body>
</html>

谢谢大家观看,我是小辉,请大家多多关照

目录
相关文章
|
2天前
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
4月前
|
前端开发 JavaScript API
使用 JavaScript 实现图片上传
使用 JavaScript 实现图片上传
129 1
|
6月前
|
前端开发 JavaScript
杨老师课堂之JavaScript案例手动切换轮播图片
杨老师课堂之JavaScript案例手动切换轮播图片
38 2
|
6月前
|
前端开发 JavaScript
杨老师课堂之JavaScript案例之自动切换轮播图片
杨老师课堂之JavaScript案例之自动切换轮播图片
36 1
|
3月前
|
JavaScript 前端开发
【原创】用JavaScript动态获取网页中缩放图片的长度、宽度和显示比例
【原创】用JavaScript动态获取网页中缩放图片的长度、宽度和显示比例
|
4月前
|
JavaScript 前端开发
JS - 如何上传 Base64 编码的图片
本文展示了如何将Base64编码的图片在前端转换为Blob对象,并使用`FormData`上传到服务器端的方法。
200 0
|
6月前
|
Web App开发 JavaScript 前端开发
使用 JS 实现在浏览器控制台打印图片 console.image()
在前端开发过程中,调试的时候,我们会使用 console.log 等方式查看数据。但对于图片来说,仅靠展示的数据与结构,是无法想象出图片最终呈现的样子的。 虽然我们可以把图片数据通过 img 标签展示到页面上,或将图片下载下来进行预览。但这样的调试过程实在是复杂,何不实现一个 console.image() 呢?
139 1
使用 JS 实现在浏览器控制台打印图片 console.image()
|
6月前
|
JavaScript 前端开发 安全
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印 1. 信息标识: 水印可以用于标识文档的所有者、保密级别、状态或其他相关信息,帮助用户更好地理解文档内容的属性。 2. 版权保护: 在文档中添加水印可以帮助保护内容的版权,防止他人未经授权地复制、转载或篡改内容。 3. 安全保护: 对于敏感信息或机密文档,添加水印可以帮助防止信息泄露,提高文档的安全性。 4. 提升专业性: 在一些场景下,如商业报告、合同文件等,添加水印可以增加文档的专业性和正式性。 5. 防止截屏或拷贝: 在网页中添加水印可以防止用户通过截屏或复制粘贴等方式非法获取文档内容。
87 1
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印
|
6月前
|
前端开发 JavaScript
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
32 2