博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node+multiparty+ajax 上传图片并保存到数据库
阅读量:4979 次
发布时间:2019-06-12

本文共 2492 字,大约阅读时间需要 8 分钟。

1、html 部分

  
上传图片

2、node部分 需要安装一下插件  

cnpm install express mysql multiparty  --save

3、nodejs代码实现

const express = require('express');let mysql = require("mysql");var multiparty = require('multiparty');//获取上传的图片功能const path = require('path');const app = express();let settings = require("./src/js/mySql.js");//设置跨域访问app.all('*', function (req, res, next) {  res.header("Access-Control-Allow-Origin", "*");  res.header("Access-Control-Allow-Headers", "X-Requested-With");  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");  res.header("X-Powered-By", ' 3.2.1');  res.header("Content-Type", "text/plain"); // res.header("Content-Type", "application/json;charset=utf-8");  next();});/********************************************上传图片*********************************************///注意:在客户端提交的时候//html页面form 表单要加入 enctype="multipart/form-data"//但是 ajax 不需要加入//  静态文件的托管,在 upload 目录下找到图片//  访问地址 http://127.0.0.1:8888/public/upload/images/XXXXXXXXXXX.jpgapp.use('/public/upload/images',express.static('public/upload/images'));// 要返回的 json 数据var myResult = {  versionName: '4.1.6',  versionCode: '340',  status: '0', // 响应状态 0-成功,非0-错误码  errorMessage: '成功',  exception: 'xxxxxx', // 异常描述   result: [{}]
}; //获取表单提交的数据 以及post过来的图片 app.post('/uploadimg',function(req,res){ var form = new multiparty.Form(); form.uploadDir='public/upload/images'; //上传图片保存的地址(目录必须存在) form.parse(req, function(err, fields, files) {
// 1、fields:获取表单的数据 2、files:图片上传成功返回的信息 myResult.result[0].code = "200"; myResult.result[0].message="success"; myResult.result[0].imgUrl='http://127.0.0.1:8888/'+files.image[0].path res.send(myResult); var url='http://127.0.0.1:8888/'+files.image[0].path; /***********************************************数据库连接**********************************************************/ let connection = mysql.createConnection(settings.db); connection.connect(); let addSql = 'INSERT INTO userImage(userId,imgUrl) VALUES(0,?)'; //增 connection.query(addSql,url,function (err, result) { if (err) { console.log('[INSERT ERROR] - ', err.message); return; } console.log('INSERT ID:', result); }); connection.end();//关闭数据库连接池 }); }) app.listen(8888, () => console.log('Example app listening on port 8888!'));

4、mySql.js

module.exports={  db:{    host: 'localhost',    user: 'root',    password: '******',    port: '3306',    database: '数据名称'  }};

 

转载于:https://www.cnblogs.com/hellowoeld/p/10740173.html

你可能感兴趣的文章