首页 > 解决方案 > 错误:ENOENT:没有这样的文件或目录,打开 'F:\login\uploads\2019-05-12T18:23:38.048Z20190319_214122.jpg'

问题描述

Error in path in uploading image by multer.

I tried to give path dependency but that also problem didn't solved. 

const express = require('express');
const mysql = require('promise-mysql');
const path = require('path')
const multer = require('multer')
const storage = multer.diskStorage({
  destination: function(req, file, cb){
    cb(null, '/uploads/')
  },
  filename: function(req, file, cb){
    cb(null, new Date().toISOString() + file.originalname)
  }
});

这给出错误-错误:ENOENT:没有这样的文件或目录,打开 'F:\login\uploads\2019-05-12T18:23:38.048Z20190319_214122.jpg'

标签: node.js

解决方案


cb(null, new Date().toISOString() + file.originalname)

改成:

cb(null, new Date().toISOString().replace(/[\/\\:]/g, "_") + file.originalname)

Date.toISOString() 返回当前日期和时间,并包含字符':',在 Windows 文件系统中是禁止的。文件名也可能包含无法正确处理的路径分隔符。我添加了一个正则表达式,将字符 ':'、'\' 和 '/' 替换为字符 '_'。现在文件名变为有效。


推荐阅读