百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

前端开发-文件上传,如何使用XMLHttpRequest将文件发送到后台?

xsobi 2025-01-08 18:16 11 浏览

Bash
<form> 
  <input type="file" id="fileInput">
</form>

<script>
{
  const fileInput = document.getElementById('fileInput')

  fileInput.accept = 'image/*'
  fileInput.onchange = () => {
    const file = fileInput.files[0]
    const formData = new FormData()
    const xhr = new XMLHttpRequest()

    formData.append('img', file)

    xhr.open('POST', 'http://localhost/upload.php', true)
    xhr.send(formData)
    xhr.onreadystatechange = () => {
      if (xhr.readyState !== 4)
        return

      if (xhr.status === 200) {
        const data = JSON.parse(xhr.responseText)
        const img = new Image()
        img.src = data.url
        document.body.appendChild(img)
      } else {
        alert('文件上传失败: ' + xhr.status)
      }
    }
  }
}
</script>
Bash
<?php
// 后端php代码
header('Access-Control-Allow-Origin: *');

$img = $_FILES['img'];

if (is_uploaded_file($img['tmp_name'])) {
  move_uploaded_file($img['tmp_name'], './'.$img['name']);
  echo json_encode(['url' => 'http://localhost/'.$img['name']]);
} else {
  echo json_encode(['err' => 'upload image error']);
}

相关推荐

Linux基本命令

一、基本命令1.pwdxx@admin1,中xx表示用户登录的名字,admin1表示主机名,test表示当前工作目录,pwd(presentworkingdirectory):查看当前...

Linux基础知识之下载软件包

Linux下载已经安装过的软件包:yumreinstall-y包名--downloadonly--downloaddir=/tmp下载未安装过的软件包:yuminstall-y包名...

阿里P8架构师“呕心沥血”1年总结出这份Linux基础到进阶学习文档

开始学习Linux的一些建议建议读者范围有开发经验者。科研人员(由其Numrical)。动手能力强的。只是好奇,对于Linux只是浅尝辄止的就不建议继续往下看了。端正学习态度Linux不等于骇客(or...

零基础走向“人工智能与数据分析”系列:Linux基础-简介

纷繁快变的世界,你需要简洁直入的新知识,引起你灵感的火花。请关注前沿知识清单。Linux就是一个操作系统,就像你了解的Windows;在安全性与稳定性等方面更优;通常通过一个叫做Shell的命...

linux基础学习,你的基础真的扎实嘛?

在Linux的世界里,不仅要移动,复制文章等等,还需要文章内容的查阅。最常用的差不多就是cat或者less,这个两个是我经常用的。当然不止这两个命令罗.我有个优美的句子,我要查看,我第一个反应就是ca...

linux基础04:linux用户相关的命令有哪些?怎样切换用户?

通过前面的几节课,我们在windows系统中安装好了linux虚拟机,也通过xshell远程终端连接上了linux虚拟。从今天开始,我们就可以正式开始学习linux的知识了。今天,我们主要介绍的是用户...

为什么建议使用Linux?从“白嫖”到精通,只需要这几步

Windows系统,大家肯定不陌生!但我每次,打开Windows系统的电脑,跳出的弹窗真是令人窒息,想关都关不完。下载应用软件时,甚至还绑定了各种——多个应用软件打包下载。这时的我,脑子里只有“无语...

Linux基础运维篇:Linux文件操作超详细版(第007课)

一、Linux文件系统基础1.文件类型Linux一切皆文件,常见文件类型:普通文件(-):文本文件(.txt)、二进制文件(可执行程序)、压缩文件等。目录文件(d):用于组织文件和子目录(类似...

Linux和Windows的操作系统基础知识梳理

Linux和Windows操作系统基础知识前言一.Linux的背景介绍二.Linux的环境搭建(1)搭建方式(2)系统框架三.Linux常用命令四.Windows常见目录1、windows常见目录2...

linux 基础,你掌握了几个?

进程的退出returen和exit,return只是函数的返回,而exit却是进程的结束。voidexit(intstatus);#include<stdlib.h>vo...

蓝易云 - Linux 基础入门 + Java项目部署

Linux基础入门+Java项目部署一、Linux基础入门1.1什么是LinuxLinux是一种开源的类Unix操作系统,最初由LinusTorvalds于1991年发布。Linux因其...

Linux超简单入门开箱篇

此篇文章主要会带你介绍Linux操作系统,包括Linux本身、Linux如何使用、以及系统调用和Linux是如何工作的。Linux简介UNIX是一个交互式系统,用于同时处理多进程和多...

Linux基础入门(VMWare中CentOS7配置yum)

上一章节,介绍了《Linux基础入门(CentOS7下通过命令行配置网络)》,本章将介绍如何配置yum源,方便后续在学习和使用的过程中,对所需工具的安装;Yum(全称为YellowdogUpda...

干货 | 这 3 个超经典的Linux实战项目,让你分分钟入门Linux系统

编译安装nginx搭建小游戏网站编译安装流程下载nginx代码wget-P/server/tools/http:nginx.org/download/nginx1.22.0.tar.gz解压并进...

Redis入门教程

阿铭linux近16年的IT从业经验,6年+鹅厂运维经验,6年+创业公司经验,熟悉大厂运维体系,有从零搭建运维体系的实战经验。关注我,学习主流运维技能,让你比别人提升更快,涨薪更多!Redis介绍Re...