Ju nuk do të gjeni shumë blogje në lidhje me Multer për të ngarkuar skedarë në një dosje tjetër në bazë të ndonjë referimi.

Rasti 1: Kur dëshironi të ngarkoni skedarë vetëm në dosje të ndryshme në bazë të emrit të fushës.

Shënim: Regjisori duhet të jetë tashmë i pranishëm në server. (Ju gjithashtu mund t'i krijoni ato në mënyrë dinamike duke përdorur modulin FS)

var assign = multer.diskStorage({
 destination:function(req,file,cb){
const dir=’./public/uploads/’+file.fieldname;
if(file.fieldname === “Assign1”){
  cb(null,dir);
 }else if(file.fieldname===”Assign2"){
  cb(null,dir);
 }else if(file.fieldname===”Assign3"){
  cb(null,dir);
 }else if(file.fieldname===”Assign4"){
  cb(null,dir);
 }else if(file.fieldname===”Assign5"){
  cb(null,dir);
 }
 },
 filename: function(req,file,cb){
 cb(null,file.originalname)
 }
})
var upload = multer({storage:assign});

Rrugët API do të duken kështu.

app.post(‘/submitted’,upload.any()
 ,function(req,res,next){
 res.send(‘<html>file uploaded</html>’)
})

Etiketat e hyrjes do të duken kështu

<form action=”/submitted” enctype=”multipart/form-data” method=”POST”>
 <table>
 <tr><p> <h4 class = “text-white”>Assignment 1 <input type=”file” name=”Assign1"></h4></p>
 <br></tr>
 <tr><p> <h4 class = “text-white”>Assignment 2 <input type=”file” name=”Assign2"></h4></p>
 <br></tr>
 <tr><p> <h4 class = “text-white”>Assignment 3 <input type=”file” name=”Assign3"></h4></p>
 <br></tr>
 <tr><p> <h4 class = “text-white”>Assignment 4 <input type=”file” name=”Assign4"></h4></p>
 <br></tr>
 <tr><p> <h4 class = “text-white”>Assignment 5 <input type=”file” name=”Assign5"></h4></p>
 <br></tr>
 <tr><button class=”button” type=”submit” >Submit</button> </tr>
 </table>
 
 </form>

I gjithë emri i skedarit duhet të shkruhet me kujdes

Rasti 2: Kur dosja duhet të krijohet në mënyrë dinamike, bazuar në një atribut si p.sh. ID-ja e përdoruesit, e kaluar në trup me skedarë të shumtë.

const multer = require('multer')
const storage = multer.diskStorage({
destination: (req, file, cb) => {
  const { userId } = req.body
  const dir = ./uploads/${userId}
  fs.exists(dir, exist => {
  if (!exist) {
    return fs.mkdir(dir, error => cb(error, dir))
  }
  return cb(null, dir)
  })
},
filename: (req, file, cb) => {
  const { userId } = req.body
  cb(null, UserId-${userId}-Image-${Date.now()}.png)
}
})

const upload = multer({ storage })