首页 > 解决方案 > Node/Express Multer 上传系统不加载上传的文件

问题描述

我使用 express ajax 和 multer 在 nodejs 中制作了一个图像上传系统。图像完全加载到我设置的目的地和我设置的名称。问题是当我转到应该显示上传图片的页面时,它告诉我它没有找到它们(404 NOT FOUND)。但是在我按下 CTRL + F5 之后,图像就会出现。

上传图片后,当我无需刷新 FTP 或按 CTRL + F5 即可转到应该显示图片的页面时,我该怎么做?

这是我的代码

来自创建配置文件页面的 Ajax 处理程序

$(".b_cr_md").click(function(e){
        e.preventDefault();
        var v_fm_dt = new FormData();
        if (v_fm_dt) {
          if ($('.up_im').is(':visible')){
            var _image = document.getElementById('imgInp');
            var m_nm = $('#m_nm').val();
            if (m_nm.length < 1) {
              alert('Please select a name');
            } else {
              v_fm_dt.append('modelname', m_nm);
              for ( i = 0 ; i < _image.files.length; i++) {
                var file = _image.files[i];
                v_fm_dt.append('pictures', file);
              }
              $.ajax({
                url: '/dashboard/actions/models/createmodel/'+m_nm,
                type: 'POST',
                method: 'POST',
                cache: false,
                contentType: false,
                processData: false,
                data: v_fm_dt,
                success: function(data){
                  console.log(data);
                }
              });
            }

          } else {
            alert("You didn't select the pictures");
          }
        }
      });

路由器功能:

router.post('/actions/models/createmodel/:modelsname', function (req, res, next) {

const name = req.params.modelsname;
const custom_folder = './public/images/models/'+name;
if (!fs.existsSync(custom_folder)){
  fs.mkdirSync(custom_folder);
}
var storage = multer.diskStorage({

  destination: function(req, file, cb){
    cb(null, custom_folder);
  },
  filename: function(req, file, cb){
    if (!req.headers.index){
      req.headers.index = 1;
    }
    cb(null, name.toLowerCase() + '_' + (req.headers.index++) + path.extname(file.originalname));
  }
});

let upload_im = multer({ storage: storage}).array('pictures', 4);
upload_im(req, res, function(err){
  if (err) {
    res.send('error');
  } else {
    res.send('success');
  }
});

});

标签: node.jsexpressmulter

解决方案


推荐阅读