肌肉达摩 2020-12-25 09:43 采纳率: 88.9%
浏览 7
已采纳

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条回答 默认 最新

  • bosaidongmomo 2020-12-25 10:18
    关注

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

报告相同问题?

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?