节点/ Express Multer上传系统未加载上传的文件

时间:2019-12-07 05:12:07

标签: node.js express multer

我使用express ajax和multer在nodejs中制作了一个图像上传系统。 图像将精确加载到我设置的目的地中,并以我设置的名称加载。问题是,当我转到应该显示上传图片的页面时,它告诉我找不到图片(404未找到)。但是在按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');
  }
});

});

0 个答案:

没有答案