前端如何实现本地图片上传?

这篇具有很好参考价值的文章主要介绍了前端如何实现本地图片上传?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端如何实现本地图片上传?

摘要

对于学习前端的小伙伴都有一个困惑,就是平常想上手小项目,但碍于不想购买服务器,实践受到了限制。
一般我选择node.js搭建服务器,毕竟基于JavaScript语言,简直不是一家人不进一家门。
但是,刚学node.js只会链接数据库进行增删改查,图片上传简直就是渣渣……
现在,我的思路是这样的,在没有云服务器的情况下,利用node.js搭建本地服务器,将图片放在项目项目目录下,名字最好排序,方便前端项目遍历……

前端页面设计和代码实现

在前端页面中需要包含一个表单,用于用户上传图片。表单中需要设置 enctype 属性为 “multipart/form-data”,这样才能上传二进制文件(图片)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <form action="http://127.0.0.1:3000/upload" method="post" enctype="multipart/form-data" target="_parent">
      <input type="file" name="image" />
      <input type="submit" value="上传" />
    </form>
  </body>
</html>

后端服务器代码实现

安装模块


 1. npm init -y
 2. npm i express multer -S

在后端服务器中,需要使用 Node.js 的 express 框架来创建路由。具体的实现方式如下:

const express = require('express')
const multer = require('multer')
const app = express()
let index = 0
//设置存储路径和文件名
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './uploads')
  },
  filename: function (req, file, cb) {
    index += 1
    cb(null, index + '.png')
  }
})

const upload = multer({ storage: storage })

app.post('/upload', upload.single('image'), function (req, res, next) {
  const file = req.file
  if (!file) {
    const error = new Error('请上传图片')
    error.httpStatusCode = 400
    return next(error)
  }
  res.send({ msg: '上传成功' })
})

app.listen(3000, function () {
  console.log('服务器已经启动')
})

在上述代码中,使用了 multer 中间件来处理图片上传。具体实现步骤如下:

  1. 设置存储路径和文件名;
  2. 初始化上传配置对象;
  3. 创建一个路由用于处理文件上传; 启动服务器,监听 3000 端口。

封装组件

<template>
  <div>
    <input type="file" @change="handleUpload">
    <button @click="uploadImage">上传</button>
  </div>
</template>

<script>
export default {
  name: "ImageUploader",
  data() {
    return {
      file: null,
      imageUrl: "",
    };
  },
  methods: {
    handleUpload(event) {
      this.file = event.target.files[0];
    },
    uploadImage() {
      const formData = new FormData();
      formData.append("image", this.file);
      // 发送上传请求
      axios.post("/upload", formData).then((res) => {
        this.imageUrl = res.data.imageUrl;
      });
    },
  },
};
</script>

这个组件包含一个文件选择框和一个上传按钮,用户可以通过选择文件来上传图片。当用户点击上传按钮时,会将图片通过 axios 库发送给后端 /upload 接口进行处理,然后将图片链接赋值给 imageUrl 变量,以便在页面上显示上传的图片。请注意,这只是一个简单的示例,实际上还需要对上传的图片进行一些检查和处理,例如检查文件大小、类型和命名等。文章来源地址https://www.toymoban.com/news/detail-450574.html

到了这里,关于前端如何实现本地图片上传?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端如何上传图片给后台?如何传递 multipart/form-data 类型的数据?图片大小、格式检查?

    图片上传需要传二进制流,请求头的 content-type 类型需为 multipart/form-data,传递的格式如下图所示 前后端交互通常为: 先调用接口上传二进制流图片 然后再上传表单其他内容(第一步通常会返回后台存储的图片id,第二步会将图片id传递给后台) 注:目前我只用过以上这种方

    2024年04月15日
    浏览(58)
  • 【SpringBoot】-- 实现本地文件/图片上传到服务器生成url地址

            在java项目中你可能会有以下需求:用户上传本地图片,然后展示在网页上。本篇文章将使用阿里云oss实现上传图片到oss,oss生成url。 首先进入阿里云,按如下操作 进入创建页面,修改读写权限为公共读 然后进入bucket,创建AccessKey 创建后,保存好AccessKeyID和Acces

    2024年04月10日
    浏览(47)
  • 前端 img图片如何 展示 base64 格式(并且下载到本地)

    如题:最近在做项目发现页面上有些图片是动态获取的,也就是后台给我们返回图片的存放地址,一般都是放在服务器上的某个位置,我们直接拿到渲染一下就行了,(前提是不存在跨域问题), 但是由于项目特殊性,后台使用了Python 渲染出来的图片是svg格式的图片,并且

    2024年02月09日
    浏览(58)
  • 7.2 SpringBoot实现上传图片API + url映射本地路径registry.addResourceHandler

    在图书借阅系统里,有很多图片需要前端展示,这些图片大都是由用户上传,保存在服务端,所以服务端需要提供 上传和访问图片 。 基本要求 :前端直接访问网络图片url 就可以打开图片,不用下载,更不用base64转码! 实现方式 : Tomcat

    2024年02月10日
    浏览(44)
  • 自建私人图床:本地PHP搭建Imagewheel云图床,实现便捷的外部远程访问和图片上传

    云存储在前几年风头无两,云存储平台也如雨后春笋般冒出来。但是这两年风头退去云存储平台相继关闭,除了几个互联网大厂,其他平台都在苦苦支撑。而图床作为云存储的一个分支,更是所剩无几。但图床不仅能用来存储个人图片,也能作为网站图片的来源,想要拥有一

    2024年02月07日
    浏览(42)
  • vue前端实现图片下载,实现点击按钮弹出本地窗口,选择自定义保存路径

    直接上代码,废话不多说,点关注,不迷路 一、下载代码 二、别找代码了,不用代码就可以实现 以下按照步骤一步一步来 按照红色箭头所指,用鼠标戳它 恭喜你,功能完成了

    2024年02月13日
    浏览(56)
  • 百度ueditor如何能实现直接粘贴把图片上传到服务器中

    1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java。前端为Jsp(前端都一样,后台如果语言不通得自己做 Base64编码解码) 因为公司业务需要支持IE8 ,网上其实有很多富文本框,效果都很好。 例如www.wan

    2024年02月04日
    浏览(66)
  • SpringBoot项目上传图片(本地/OSS)

    可参考视频: 【springboot上传图片的两种方式详解(本地/OSS对象存储)】 https://www.bilibili.com/video/BV1TK411Z7ad/?share_source=copy_webvd_source=7f0416c71bcbaf44e08ad58367e3f198 视频前十分钟是从0开始编写图片保存到本地,可以照着视频敲出来,不想看也可以直接复制我下面的代码 在 Resources 目

    2023年04月14日
    浏览(42)
  • 本地上传图片或视频获取预览图

    在我们上传图片或视频需要进行预览操作,即获取该图片或视频一帧的画面作为背景显示时

    2024年02月16日
    浏览(38)
  • 图片上传流程&前端上传文件&后端保存文件&并返回图片地址

    也是在最近一点时间写小demo 遇到的一些问题 比如在用户界面,用户选择本地的一张照片,前端把照片传到后端,后端怎么把照片保存到服务器,然后返回给 图片线上地址。也是找了一些文章,然后分享下。  技术 前端:react 后端:egg.js(node框架) base64 转换  转二进制 保存

    2024年02月02日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包