当前位置: 首页 > 知识库问答 >
问题:

用multer显示上载的图像

宋建本
2023-03-14

我是NodeJS的新手,我正在使用express、ejs和Multer(处理多部分/表单数据)开发一个项目,以便上传一张图片(单个>>个人资料图片)。我一直试图在一个视图中显示上传的文件(图像),但没有成功。我有关于上传文件(req.file)的所有信息,但我不能用它做任何事情。

//route.js 
   app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){
        res.render('image', {
              path: req.file.path
        });
      });



//image.ejs
<section id="upload">
    <img class="uploaded-image" src="<%= path %>" alt="Image name: <%= path %>"/>
  </section>

有人能帮帮我吗。

问候你,多娜

共有1个答案

苏昂雄
2023-03-14

所以这里是解决办法,它对我起作用了!

var storage        = multer.diskStorage({
  destination: function(req, file, cb){
    cb(null, path.join(__dirname, PICTURE_FOLDER));
  },
  filename: function(req, file, cb){
    var filename = Date.now();
    switch (file.mimetype) {
      case 'image/png':
      filename = filename + ".png";
      break;
      case 'image/jpeg':
      filename = filename + ".jpeg";
      break;
      default:
      break;
    }
    cb(null, filename);
  }
});
var upload       = multer({ storage: storage});

app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){
    res.render('image', {
      path: req.file.path
    });
});

问候你,多娜

 类似资料:
  • 我正在尝试上传文件使用react和axios到节点后端使用Multer。 当我将表单用作: 它工作得很好,但当使用axios时,文件是未定义的: 我将axios用作: 我后端如下: 有谁能帮我一下吗?我真的被卡住了。我需要在后端上传图像。

  • 我正在开发我的第一个MERN stack网络应用程序。我完成了开发并尝试在VPS中托管。一切正常。但是,我无法查看上传的图像。我与您分享关于项目结构的几个细节。 React应用程序是为生产而生成,并保存在公用文件夹中。 上载文件夹创建,用户上载的图像保存在其中,其位置存储在DB中。(例如:/uploads/user1/img1.jpg)。使用Multer处理图像上载。 我可以访问我的web应用程序

  • 我有一个巨大的问题显示一个上传的图片在Spring引导,问题是第一次我上传它,路径是完美的,一切都很好,但图像不显示,当我重新启动服务器图像显示。 我认为这是因为当启动项目时,它编译成一个.jar而没有映像,所以在重新启动项目之前,映像并不真实存在。 我不知道如何解决这个问题,不确定是否可能。

  • 我正在使用JavaFX,在那里我编写了一个包含的代码,通过我想在我的场景上显示图像,但它不起作用。图像不显示。 当我使用它还显示一个错误。虽然我70%的编码已经完成,但我只是坚持在现场显示图像(不上传)。 以下是我正在使用的代码: 所以,我需要的是通过单击按钮并选择图像来显示我的场景中的图像。

  • 我正在尝试重命名一个与multer上传的图像文件的请求参数。 下面是我的代码: 它的工作很好,但我想知道它是否存在一些更干净和更容易与multer重命名功能。 它已经尝试过这样的事情: 但它不起作用,因为req尚未填充(未定义)。 我使用httpie使用以下命令测试我的代码: 有没有可能使用multer的重命名功能来做我用FS做的事情?还是有更好的办法? 谢谢你的反馈。 托玛斯 编辑 使用Disk

  • 我正在尝试为Vaadin使用EasyUploads插件,但无法显示图像。 当我点击插件的“选择文件”按钮时,它会要求我打开一个文件。我从我的图片中选择了一些.png文件,插件显示了它下面图片的信息。 然后我按下我的“上传”按钮,这是目前需要的,只是为了首先显示上传的图像。 upload=EasyUpload用于选择文件的组件 图像=我与设计师一起绘制到布局中的嵌入组件。 但当我用浏览器查看页面时,