前端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端口启动");
})
})


目录
相关文章
|
5天前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
|
5天前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
17 0
|
6天前
|
存储 前端开发 JavaScript
🚀前端轻松实现网页内容转换:一键复制、保存图片及生成 Markdown
在现代前端开发中,提升用户的交互体验至关重要。本文将详细介绍如何使用 HTML2Canvas 和 Turndown 两个强大的 JavaScript 库,实现将网页选中文本转化为图片并保存或复制到剪贴板,或将内容转换为 Markdown 格式。文章包含核心代码实现、技术细节和功能拓展方向,为开发者提供了一个轻量级的解决方案,提升用户体验。
105 68
|
6天前
|
JavaScript 前端开发 API
Vue.js:现代前端开发的强大框架
【10月更文挑战第11天】Vue.js:现代前端开发的强大框架
58 41
|
8天前
|
JavaScript 前端开发 API
Vue.js:打造高效前端应用的最佳选择
【10月更文挑战第9天】Vue.js:打造高效前端应用的最佳选择
11 2
|
8天前
|
JavaScript 前端开发 开发者
前端开发趋势:从Web Components到Vue.js
【10月更文挑战第9天】前端开发趋势:从Web Components到Vue.js
|
8天前
|
XML 前端开发 JavaScript
前端开发进阶:从HTML到React.js
【10月更文挑战第9天】前端开发进阶:从HTML到React.js
|
8天前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
5天前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
8 0
|
5天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
38 0