Loading [MathJax]/jax/output/HTML-CSS/jax.js
肌肉达摩 2020-12-25 01:43 采纳率: 90%
浏览 9
已采纳

expr ess上传的文件,如何在浏览器地址栏里预览

写了个elementUI+nodejs+expr ess的页面实现文件上传下载,新建的exp ress项目可以实现浏览器预览但是上传提示跨域,我修改了/bin/www里的代码,现在上传没问题了,但是上传的图片和文档无法通过浏览器地址栏输入路径来访问预览,求大神协助

www代码

#!/usr/bin/env node

/**
 * Module dependencies.
 */

var debug = require('debug')('xiaohongfile:server');
var http = require('http');
const exp ress = require("exp ress");
const multer = require("multer");
const fs = require("fs");
const app = new exp ress();
var port = normalizePort(process.env.PORT || '26666');
app.set('port', port);
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", "application/json;charset=utf-8");
    next();
});

//图片上传
app.post(
    "/upload",
    multer({
        //设置文件存储路径
        dest: "public/uploadFile",
    }).array("file", 1),
    function (req, res, next) {
    let files = req.files;
    let file = files[0];
    let fileInfo = {};
    let path = "public/uploadFile/" + Date.now().toString() + "_" + file.originalname;
    fs.renameSync("./public/uploadFile/" + file.filename, path);
    //获取文件基本信息
    fileInfo.type = file.mimetype;
    fileInfo.name = file.originalname;
    fileInfo.size = file.size;
    fileInfo.path = path;
    console.log(fileInfo)
    let data = {
        code: 200,
        msg: "OK",
        data: fileInfo
    }
    res.send(data)
});

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
    var port = parseInt(val, 10);
    if (isNaN(port)) {
        // named pipe
        return val;
    }
    if (port >= 0) {
        // port number
        return port;
    }
    return false;
}

/**
 * Event listener for HTTP server "error" event.
 */

function onError(error) {
    if (error.syscall !== 'listen') {
        throw error;
    }
    var bind = typeof port === 'string'
         ? 'Pipe ' + port
         : 'Port ' + port;
    // handle specific listen errors with friendly messages
    switch (error.code) {
    case 'EACCES':
        console.error(bind + ' requires elevated privileges');
        process.exit(1);
        break;
    case 'EADDRINUSE':
        console.error(bind + ' is already in use');
        process.exit(1);
        break;
    default:
        throw error;
    }
}

/**
 * Event listener for HTTP server "listening" event.
 */

function onListening() {
    var addr = server.address();
    var bind = typeof addr === 'string'
         ? 'pipe ' + addr
         : 'port ' + addr.port;
    debug('Listening on ' + bind);
}

展开全部

  • 写回答

2条回答 默认 最新

  • 波塞冬的祝福 2020-12-25 02:18
    关注

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
  • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
  • ¥15 vscode开发micropython,import模块出现异常
  • ¥20 Excel数据自动录入表单并提交
  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
  • ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
  • ¥15 微信小程序运行一项功能时,弹出未知错误弹框,检查代码没有问题
  • ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
  • ¥15 python模糊字匹配函数问题
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部