Можно ли использовать тег select с помощью multer?

#select #input #multer

Вопрос:

Я искал это, но не мог найти ответа. Я задаю здесь вопрос, кто-то может подтвердить это : можно ли использовать тег select и некоторые параметры внутри, с помощью multer вместо типа ввода=»файл» ?

Я хочу «загрузить» изображение, уже присутствующее в папке img моего проекта node/express с помощью multer. Звучит любопытно, я знаю, это потому, что моему клиенту нужно обновить свой проект, и я не хочу все менять…

Ниже приведен некоторый код, который работает :

 <form method="POST" action="/stories" enctype="multipart/form-data" class="col s12 content add-form">
...
<div class="row">
  <h5>Your image</h5>
  <div class="input-field">
    <input type="file" id="upload-images" name="myFile">
  </div>
</div>
...
</form>
 

Ниже моей безумной идеи, лол :

 <form method="POST" action="/stories" enctype="multipart/form-data" class="col s12 content add-form">
...
<div class="row">
 <h5>Pick a predefined image</h5>
 <label for="upload-attir-images">Pick a predefined image:</label>
 <select class="input-field add-img-select" id="upload-attir-images">
   <option value="0">Select an image</option>
   <option name="myFile" value="/img/animals.jpg">Animals</option>
  </select>
</div>
...
</form>
 

На случай, если вам нужно взглянуть на мультера (я не думаю, что проблема исходит оттуда, но кто знает..)

 const storage = multer.diskStorage({
  destination: './public/uploads/',
  filename: function (req, file, cb) {
    cb(null, file.fieldname   '-'   Date.now()   '-'   file.originalname);
  }
});

// Init Upload
const upload = multer({
  storage,
  // limits: { fileSize: 30000000 }
}).single('myFile')


module.exports = upload
 

Форма процесса моего маршрута :

 router.post('/stories', ensureAuth, (req, res, next) => {

  upload(req, res, async function (error) {
    try {
      const stories = await Story.find({ user: req.user.id }).lean()

      ... // some crazy work between req.user / req.body and req.file

      req.body.file = req.file
      const file = req.file

      if (!file) {
        res.redirect('/dashboard')
        return next(error)
      } else {

        await Story.create(req.body)

        ... / some work to send push notfications

        res.render('dashboard', {
          name: req.user.firstName,
          stories
        })
      }

     } catch (error) {
      console.error(error)
      res.render("error/500")
    }
  })
})

 

And the tree architecture of my projet using node/express :

 ..
> public
  > css
  > js
  > img
  > uploads
> routes
> views
app.js
..