как получить pdf файл в NodeJS - PullRequest
1 голос
/ 16 января 2020

Я реализовал сервер для получения файла, используя lib multer, он работает для фотографий (PNG, JPEG), но не для PDF ... фактически я могу получить, но файл поврежден. Если кто-то может мне помочь, я ценю:)

Конфигурация Multer:

import crypto from 'crypto';
import multer from 'multer';
import { extname, resolve } from 'path';

export default {
  storage: multer.diskStorage({
    destination: resolve(__dirname, '..', '..', 'tmp', 'uploads'),
    filename: (req, file, cb) => {
      crypto.randomBytes(16, (err, raw) => {
        if (err) return cb(err);

        return cb(null, raw.toString('hex') + extname(file.originalname));
      });
    },
  }),
};

Middleware:

 middlewares() {
    this.server.use(cors());
    this.server.use(express.json());

    this.server.use(
      '/files',
      express.static(resolve(__dirname, '..', '..', 'tmp', 'uploads'))
    );
  }

Маршруты:

const routes = new Router();
const upload = multer(multerConfig);

routes.post('/files', upload.single('file'), FileController.store);

FileController:

import File from '../models/File';

class FileController {
  async index(req, res) {
    const file = await File.findByPk(req.params.id);

    res.json(file);
  }
  async store(req, res) {
    const { originalname: name, filename: path } = req.file;

    const file = await File.create({
      name,
      path,
    });
    return res.json(file);
  }
}

export default new FileController();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...