文档章节

post方式发送接收文件

c
 caiyezi
发布于 2016/11/08 20:24
字数 293
阅读 7
收藏 0
//文件post发送
var express = require('express');
var router = express.Router();
var request = require("request");
var fs = require("fs");
fs.readFile("public/img/test.jpg", function (err, data) {
     if (err) {
         res.send({"errMsg":"'图片上传失败'"});
         return;
     }
     var base64str = new Buffer(data).toString('base64'); //图片转字节
     var mkJSON = {
         path: "public/upload",
         img: base64str,
         encoding: 'utf8'
     };
     request({
         url: "127.0.0.1:3000/img",
         method: "post",
         form: {
             mark: "IMG",
             content: JSON.stringify(mkJSON)
         }
     }, function (error, response, body) {
         if (!error && body != undefined && response.statusCode == 200 && body.indexOf("失败") < 0) {
             //fs.unlink(localPath);
                 res.send({
                     success: true
                 });
           } else {
                 console.log("err:" + body);
                     res.send({"errMsg": "图片post失败", success: false});
            }
       });
});
//post的文件进行接收
router.post("/img", function (req, res) { var content = req.param('content'); if (null != content) { var temp = JSON.parse(content); var mkJSON = temp[0]; var filePath = mkJSON.path.replace(/\B\//, ''); filePath = filePath.substr(0, filePath.lastIndexOf("/"));if (!err) { //目录创建成功 fs.writeFileSync(mkJSON.path.replace(/\B\//, ''), new Buffer(mkJSON.img.replace(/ /g, '+'), 'base64')); //res.json({"newImgPath": constClass.ip + "/image/" + mkJSON.path.replace(/\B\//, '')}); res.send('图片接收成功!'); } else { //目录创建失败 res.send('图片接收失败'); } } else { res.send('图片接收失败'); } });

 thinkjs版:

async uploadAction() {
        let imgData = this.post("image");
        let base64Data = imgData.replace(/^data:image\/\w+;base64,/, "");
        let dataBuffer = new Buffer(base64Data, 'base64');
        let imgpath = imgutil.getImageUrl("jpg");
        let base64str = new Buffer(dataBuffer).toString('base64'); //图片转字节
        console.log(imgpath);
        let mkJSON = {
            path: imgpath,
            img: base64str,
            encoding: 'utf8'
        };
        let req = think.promisify(request.post);
        let reqObj = {
            url: think.config("makesite"),
            method: "post",
            form: {
                mark: "IMG",
                content: JSON.stringify(mkJSON)
            }
        };
        let rs = await req(reqObj);
        if(rs != undefined && rs.statusCode == 200 && rs.body.indexOf("失败") < 0){
            return this.success(think.config("imgsite")+imgpath);
        }else{
            return this.fail(1,"图片上传出错");
        }
    }

 

本文转载自:http://www.cnblogs.com/vipzhou/p/4952552.html

共有 人打赏支持
c
粉丝 1
博文 108
码字总数 0
作品 0
西安
程序员
私信 提问
PHP-PHP如何以post形式发送xml数据

PHP如何以POST形式发送XML数据,PHP如何接收XML文件 准备两个PHP文件:一个是发送数据的postXml.php,另一个是接收数据的getXml.php 发送XML: postXml.php 第一种发送方式,也是推荐的方式, 使...

王永濤
2015/11/30
124
0
1、学习用c/c++写cgi程序

CGI全称Common Gateway Interface(共同编程接口),是一种编程接口,不论什么语言,只要按照该接口的标准编写出来的程序,即可叫做CGI程序。CGI 程序的输入/输出是使用编程语言的标准输入/...

hopegrace
2011/08/21
0
0
Android 网络框架 OKHttp

概述 OKhttp是一个网络请求开源项目,Android网络请求轻量级框架,支持文件上传与下载,支持https,由移动支付Square公司贡献。 依赖 compile 'com.squareup.okhttp3:okhttp:3.8.1' Get请求 ...

xi阳
2018/09/04
0
0
jsp的 MSXML2.ServerXMLHTTP对象,xml形式传输 跨域

set Https=server.createobject("MSXML2.ServerXMLHTTP") Https.setTimeouts 20000,20000,20000,20000 Https.open "POST","http://www.xxxx.com",false Https.send "12345678" 上面为asp的代......

Run佳
2011/02/12
739
1
flask request 对象

flask request 对象 这个对象是WEB客户端发送到web服务端的全局请求对象,request需要从flask模块中导入。 form args cookies files method request监听如下信息: 1、form(POST) -> Immutab...

煮酒品茶
2016/08/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
2
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
6
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
3
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部