Экспресс-загрузка файлов с динамическим именем файла (в порядке нумерации) - PullRequest
0 голосов
/ 07 апреля 2019

Я новичок в Node JS и хочу создать API-интерфейс Rest сервера для загрузки изображений с именем файла в числовом порядке (например, 1, 2, 3, 4).

server.js

const storage = multer.diskStorage({
  destination: function (request, file, callback) {
    var newDestination = 'dataset/' + request.body.ktp;
    var stat = null;
    try {
      stat = fs.statSync(newDestination);
    } catch (err) {
      fs.mkdirSync(newDestination);
    }
    if (stat && !stat.isDirectory()) {
      throw new Error('Directory cannot be created because an inode of a different type exists at "' + dest + '"');
    }
    callback(null, newDestination);
  },
  filename(request, file, callback) {
    // const extension = path.extname(file.originalname);
    callback(null, Date.now() + '.jpg');
  }
});
const upload = multer({ storage: storage });

app.use('/images', express.static('dataset'));

app.post('/registrasi', upload.array('photos'), function (req, res) {
  const { ktp, nama, namaPerusahaan, alamat } = req.body;

  const uploadInfo = req.files.map(file => {
    return {
      sourceName: file.originalname,
      newName: file.filename,
      ktp: ktp,
      nama: nama,
      namaPerusahaan: namaPerusahaan,
      alamat: alamat
    };
  });
  res.send(uploadInfo);
});

Моя проблема в том, что я хочу создать динамическое имя файла из загруженных изображений (например, 1, 2, 3, 4). Если кто-то знает, пожалуйста, помогите мне. Любой совет приветствуется. Спасибо.

1 Ответ

2 голосов
/ 08 апреля 2019

Попробуйте следующее.

if(!req.headers.index)
   req.headers.index=0
var filename = (req.headers.index++) + path.extname(file.originalname)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...