Node.js——post方式提交的图片如何保存

https://www.cnblogs.com/bruce-gou/p/6399766.html

没有使用express框架,主要是对于 request 的监听,data的时候对数据进行保存,end的时候对所有的数据进行处理

前端使用FileReader,将图片转成base64,后端代码实现过程:

var http = require(‘http‘);

var fs = require(‘fs‘);

var path = require(‘path‘)

http.createServer(function (req, res) {
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type");
    res.setHeader("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.setHeader("X-Powered-By", ‘ 3.2.1‘)
    res.setHeader("Content-Type", "application/json;charset=utf-8");
    if (req.method == "OPTIONS") {
        res.statusCode = 200;
        return res.end(‘ok‘);
    } /*让options请求快速返回*/
    var val = []
    req.on(‘data‘, function (chunk) {
        val.push(chunk);
    })
    req.on(‘end‘, function () {
        var bufferVal = Buffer.concat(val);
        bufferVal = bufferVal.toString(‘utf8‘);
        var imgData = JSON.parse(bufferVal).imageFile;
        var base64 = imgData.base64Code.replace(/^data:image\/\w+;base64,/, ""); //去掉图片base64码前面部分data:image/png;base64
        var dataBuffer = new Buffer(base64, ‘base64‘);
        fs.writeFile(path.join(__dirname, imgData.filename), dataBuffer, (err) => {
            if (err) throw err;
            console.log(‘The file has been saved!‘);
        });
    })
    res.end(‘Hello World‘)
}).listen(3000, function () {
    console.log(‘server is running...‘)
})

原文地址:https://www.cnblogs.com/wuqiuxue/p/9189763.html

时间: 2024-10-28 12:49:24

Node.js——post方式提交的图片如何保存的相关文章

Node.js——body方式提交数据

引入核心模块 http,利用其 api(http.createServer) 返回一个 http.server 实例,这个实例是继承于net.Server,net.Server 也是通过net.createServer创建的,其中就有data事件,所以request也继承了监听data事件的功能 事件的监听被设计成不断的监听data数据,回调函数参数是一个buffer类型的参数,监听直到end事件被触发 对于body中形如 name=www&title=da&age=12 查询字符串,可以

你所未知的3种 Node.js 代码优化方式

from:https://cnodejs.org/topic/56cc2fd6c045c3743304bec6 Node.js 程序的运行可能会受 CPU 或输入输出操作的限制而十分缓慢.从 CPU 角度看,程序运行缓慢的典型原因之一就是未经优化的「热点路径」(一段经常被访问的代码).从输入输出角度看,程序运行速度的局限可能是受底层操作系统影响,也可能是出于 Node 本身的故障.更或者,一个运行缓慢的程序可能跟 Node 本身没有任何关系,问题在于外部资源,比如数据库查询或是 API 调用缓慢

js post 方式提交

//加载js angular.element(document).ready(function() { function post(url, params) { var temp = document.createElement("form"); temp.action = url; temp.method = "post"; temp.style.display = "none"; for (var x in params) { var opt

node.js利用captchapng模块实现图片验证码

安装captchapng模块 npm install captchapng nodejs中使用 var express = require('express'); var captchapng = require('captchapng'); //验证码 exports.verify= function(req, res, next) { var code = parseInt(Math.random() * 9000 + 1000); req.session.checkcode = code;

使用post方式提交表单如何获取图片数据及其他文本参数[NodeJS]

当POST方式提交包含图片的表单时,如上传图片时,需要在<form>字段需要添加参数enctype="multipart/form-data",表明以二进制方式传输数据.假如表单中包含其他文本参数,如用户名username,用常规方式是无法获取post参数的,如: <html> <head> <meta http-equiv="Content-Type" content="text/html" chars

在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure

[题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在其他机器上运行程序,进而需要远程调试功能,不过还好,NTVS提供的远程调试也非常方便. [系列索引] 在Visual Studio上开发Node.js程序——NTVS介绍及使用 在Visual Studio上开发Node.js程序(2)——NTVS远程调试及发布到Azure [文章索引] NTVS远

node.js如何将远程的文件下载到本地、解压、读取

其实要解决的问题,很简单,获取远程文件,然后解压到本地读取. 在vscode中通过node.js来实现是比较方便的,相比之前的zip.js,我觉得我还是比较喜欢node.js实现方式. test.js如下内容: //文件下载 var fs = require("fs"); var path = require("path"); var request = require("request"); //创建文件夹目录 var dirPath = pa

用Sublime Text 3的HTML-CSS-JS Prettify(需安装node.js)插件格式化代码

用Sublime Text 3的HTML-CSS-JS Prettify(需安装node.js)插件格式化代码 用 Sublime Text 格式化代码(安装 HTML-CSS-JS Prettify 插件)时,格式化时却会提示(默认路径未找到Node.js) 下载安装到Node.js 官网下载 32位版本(据说win x64版有问题)安装. 确认Node.js安装路径鼠标右键HTML/CSS/JS Prettify > Set Plugin Options保证插件路径与Node.js安装路径一

Node.js 切近实战(九) 之Excel在线(在线编辑)

最近实在是太想去西藏了,我自己总是喜欢人少的旅游地,喜欢一望无垠,喜欢蓝天白云大草原. 之前有一节我给大家讲过文件列表,如下,今天我们要讲的就是Excel在线编辑. 当我们双击文件图标的时候会跳转到一个Excel修改界面,如下. ok,这里我们使用的依然是Telerik Kendo UI中的SpreadSheet,看一下这个Spread Sheet是如何用的. 我们定义一个spreadsheet的div,我们看一下这个div怎么生成sheet. $("#spreadsheet").ke