首页 > 其他分享 >前端文件上传的实现方式

前端文件上传的实现方式

时间:2024-10-16 19:50:53浏览次数:9  
标签:文件 Vue false 前端 file error 上传

       

目录

一、使用Vue实现文件上传

1.安装依赖(如果使用 Vue CLI 创建的项目,可能已经包含所需依赖):

2.创建Vue组件:

二、使用JQuery实现文件上传

1.创建HTML结构:

   2.引入JQuery:

3.添加JavaScript代码:


前端开发过程中,经常遇到要开发文件上传的功能。在此介绍下通过Vue和JQuery分别实现文件上传的功能。

一、使用Vue实现文件上传

1.安装依赖(如果使用 Vue CLI 创建的项目,可能已经包含所需依赖):

        axios(用于发送请求)

2.创建Vue组件:

<template>
  <div>
    <input type="file" @change="handleFileUpload" />
    <p v-if="uploading">正在上传...</p>
    <p v-if="uploadSuccess">上传成功!</p>
    <p v-if="uploadError">上传失败!</p>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      uploading: false,
      uploadSuccess: false,
      uploadError: false
    };
  },
  methods: {
    handleFileUpload(event) {
      this.uploading = true;
      this.uploadSuccess = false;
      this.uploadError = false;
      const file = event.target.files[0];
      const formData = new FormData();
      formData.append('file', file);

      axios.post('/upload-api-url', formData, {
        headers: {
          'Content-Type': 'multipart/form-data'
        }
      })
     .then(response => {
        this.uploading = false;
        this.uploadSuccess = true;
      })
     .catch(error => {
        this.uploading = false;
        this.uploadError = true;
        console.error(error);
      });
    }
  }
};
</script>

        这个组件是先在data中定义上传变量,给文件输入框<input>绑定handleFileUpload()方法。当文件输入框中的文件发生变化时,触发handLeFileUpload()方法。

        handLeFileUpload()方法中,先设置状态为正在上传,并清除成功和失败状态。然后声明file 变量接收文件,文件通过event.target.files[0]获取。之后创建FormData对象调用其appen()方法添加文件。

        接下来使用axios发送 POST 请求到指定的上传接口,设置请求头为multipart/form-data以支持文件上传。

        最后,根据请求的结果来更新状态。

二、使用JQuery实现文件上传

1.创建HTML结构:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
</head>

<body>
  <input type="file" id="fileInput">
  <button id="uploadButton">上传</button>
  <p id="uploadStatus"></p>
</body>

</html>

  2.引入JQuery:

        确保在页面中引入 jQuery,可以通过以下方式引入:

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

3.添加JavaScript代码:

$(document).ready(function() {
  $('#uploadButton').on('click', function() {
    const fileInput = $('#fileInput')[0];
    const file = fileInput.files[0];
    const formData = new FormData();
    formData.append('file', file);

    $.ajax({
      url: '/upload-api-url',
      type: 'POST',
      data: formData,
      contentType: false,
      processData: false,
      beforeSend: function() {
        $('#uploadStatus').text('正在上传...');
      },
      success: function(response) {
        $('#uploadStatus').text('上传成功!');
      },
      error: function(error) {
        $('#uploadStatus').text('上传失败!');
        console.error(error);
      }
    });
  });
});

        这里的实现思路是:

                当页面加载完成后,为上传按钮绑定点击事件。

                获取文件输入框元素和选中的文件。

                创建FormData对象并添加文件。

                使用 jQuery 的ajax方法发送 POST 请求到指定的上传接口。

                设置contentTypefalseprocessDatafalse,以确保正确处理文件上传。

                在请求发送前,显示正在上传的状态。

                根据请求的结果更新页面上的上传状态文本。

        实际项目中,文件引入、安装依赖等步骤不太需要,看看实现思路和获取选中文件的方式及上传文件的格式就好。

        另外,如果对前端开发设计模式感兴趣的话,可以点击右下角专栏目录查看设计模式相关文章,有助于进一步提高代码水平。码字不易,点个赞再走吧

标签:文件,Vue,false,前端,file,error,上传
From: https://blog.csdn.net/jxnd123456/article/details/142987909

相关文章

  • 探索前端世界的奇妙库——带你领略奇奇怪怪的编程乐趣
    大家好,今天我要为大家推荐几个前端相关的奇奇怪怪的库,这些库或许在实用性上不是最强,但在创意和趣味性上绝对让你眼前一亮。让我们一起来看看这些有趣的库吧!1、Three.js:让你轻松实现3D效果官网链接:https://threejs.org/ Three.js是一个基于原生WebGL封装的3D库,它简化了3D图......
  • 35岁前端开发者:转型还是坚守?
    在互联网行业,35岁似乎成了一个敏感的年龄分水岭。很多前端开发者开始思考:到了35岁,是不是都要转型?本文将探讨这个话题,希望能为面临这一困惑的前端开发者提供一些参考。一、35岁焦虑:现实还是误解?在互联网行业,35岁焦虑并非个别现象。很多前端开发者担心随着年龄的增长,自己的技术......
  • 前端开发 --JavaScript
    前言html种script主要包括内联script和引用外部JavaScript文件两张方式1.内联script的用法内联script指的是将JavaScript代码直接写在html文档中某个部位<!--内嵌--><script>alert(1)</script><script>windowonload=function(){vara......
  • Excel DLL丢失?Excel DLL文件下载指南及常见问题解决方案
    当您在使用MicrosoftExcel时遇到提示DLL文件丢失或损坏的情况,这可能会影响软件的正常运行。为了帮助您解决这一问题,本文提供了ExcelDLL文件的下载指南,并针对常见问题给出了解决方案。一、ExcelDLL文件下载指南确定缺失的DLL文件:首先,您需要确定是哪个DLL文件丢失或损坏......
  • Canvas 在前端中的高级应用
    一、引言在前端开发领域,HTML5的 <canvas> 元素为网页带来了强大的绘图和动画功能。它不仅可以用于绘制简单的图形,还能够实现复杂的交互效果和动画场景。以下将详细介绍 canvas 的使用方法,并展示一些高级案例。二、Canvas基础(一)创建Canvas元素在HTML页面中,可以通......
  • 强大灵活的文件上传库:FilePond 详解
    文件上传是Web开发中常见的功能,尤其是对于图片、视频、文档等大文件的处理,如何既保证用户体验,又兼顾安全和性能,是每位开发者关心的问题。在这样的背景下,FilePond作为一款灵活强大的文件上传库,逐渐在前端开发者中脱颖而出。FilePond提供了优雅的用户界面和全面的功能,同时兼容多......
  • 【Shiro】9.前端页面授权控制
     shiro可以与前端Thymeleaf结合,进行前端授权认证。由于,“吾生而有涯,而知而无涯”。所以,有限的生命不能照单全收无限的知识。而,前后端分离,必定是大趋势。所以,我就不额外写代码。截图记账理解一下。1.pom.xml页面引入Thymeleaf依赖。 2.配置类添加新配置 3.前端页面引入Sh......
  • 代码实战-前端-Vue ElementUI 调用摄像头并上传到后端的代码案例
    先上效果图调用摄像头的图片拍照的图片上传文件的效果图查看上传的图片(上传完的图片合并成一个PDF)引入插件--引入组件importCameraImagefrom'@/components/CameraImage/CameraComponets.vue';--放在vue的components中components:{CameraIm......
  • 2024-10-16 前端图片加载方式优化(webp)
    把上传的图片文件格式转化为webp图片格式。前置条件:图片文件存在阿里云oss。阿里云的对象存储服务(OSS)支持在URL中直接指定图片处理参数,这样可以在不下载原始图片到服务器的情况下,直接由OSS服务端处理图片。假设你有一张存在阿里云的图片链接,那么只需要在该链接的末尾加上?x......
  • 从Windows 11 23H2升级至24H2后,Git操作提示文件所有权错误的3种有效解决方案
    从Windows1123H2升级至24H2后,Git操作提示文件所有权错误的3种有效解决方案在升级至Windows1124H2后,使用gitadd等命令时,可能会遇到如下错误提示:Error:libgit2returned:repositorypath'D:/repo/it-tools'isnotownedbycurrentuser.Toaddanexceptionforth......