前端html,js实现图片的上传与下载

简介: 前端html,js实现图片的上传与下载

html 上传

  <form>
        <input type="file">
    </form>
    <button>上传图片</button>


js

let but = document.querySelector('button');
        let form = document.querySelector('form');
        but.addEventListener('click', () => {
            let Formdata = new FormData(form); //前端所需的函数   
            Formdata.append('file', form.children[0].files[0]);//获取form下的子元素
            let xhr = new XMLHttpRequest();
            xhr.open('POST', 'http://loalhost:8000/loadUp');
            xhr.send(Formdata);
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                    if (xhr.status == 200) {
                        console.log(xhr.response);
                    }
                }
            }
        })


js 服务器的建立

说明一下,这里需要node 来加载express ,还需要下载mutiparty 模块

/**
  上传
*/
const express = require('express');
const app = express();
//后端上传需要的
const multiparty = require('multiparty');
app.post('/loadUp', (request, response) => { //上传图片
    let form = new multiparty.Form({
        uploadDir: '你想要上传并存放的位置'     //文件转存
    });
    form.parse(request, (err, fields, files) => {//fields: 上传普通的数据 ;file: 上传文件
        console.log(fields, 'fields');
        console.log(files, 'files');
    })
    response.setHeader('Access-Control-Allow-Origin', '*');//允许请求所有跨域 
    response.send("200");
})
app.listen(8000, () => {
    console.log("8000端口启动");
})


html 下载

<img src="http://loalhost:8000/getImg" alt="">


js

//后端下载需要模块
const fs = require('fs');
app.get('/getImg', (request, response) => { //图片的下载
    response.setHeader("Access-Control-Allow-Origin", "*");// 允许请求所有跨域 *
    fs.readFile('下载图片的位置', (err, data) => {
        console.log(data);
        response.send(data);
    })
app.listen(8000, () => {
    console.log("8000端口启动");
})
})


目录
相关文章
|
11天前
|
前端开发 Windows
【前端web入门第一天】02 HTML图片标签 超链接标签 音频标签 视频标签
本文档详细介绍了HTML中的图片、超链接、音频和视频标签的使用方法。首先讲解了`&lt;img&gt;`标签的基本用法及其属性,包括如何使用相对路径和绝对路径。接着介绍了`&lt;a&gt;`标签,用于创建超链接,并展示了如何设置目标页面打开方式。最后,文档还涵盖了如何在网页中嵌入音频和视频文件,包括简化写法及常用属性。
28 13
|
11天前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
9天前
|
缓存 JavaScript 前端开发
js和html代码一定要分离吗
JavaScript(JS)和HTML代码的分离虽非绝对必要,但通常被推荐
|
9天前
|
JavaScript 前端开发 UED
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
|
8天前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
26天前
|
存储 移动开发 前端开发
HTML5时代来临,这些新特性你掌握了吗?一篇文章带你玩转Web前端技术潮流!
【8月更文挑战第26天】HTML5(简称H5)作为新一代Web标准,相比HTML4带来了诸多增强功能。
35 2
|
20天前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
42 0
|
1月前
|
JavaScript 算法 前端开发
学习 node.js 六 Markdown 转为 html,zlib
【8月更文挑战第19天】
12 0
|
7天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
1月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
22 0