Как правильно вернуть файл изображения, используя nest.js? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь вернуть запрошенный файл изображения.Мой клиент загружает файл, но я не могу отобразить его, потому что это неверный файл png.Если я открою сохраненный файл tmpFile.png, я вижу его правильно.Так что, вероятно, проблема в том, как я отправляю его обратно клиенту с просьбой об этом.

// This is my controller
async getFile(@Param('bucketname') bucketName: string,
            @Param('filename') fileName: string) {
return await this.appService.getFile(bucketName, fileName);


// This is the function called
getFile(bucketName: string, fileName: string) {
    return new Promise(resolve => {
      this.minioClient.getObject(bucketName, fileName, (e, dataStream) => {
        if (e) {
          console.log(e);
        }

        let size = 0;
        const binary = fs.createWriteStream('tmpFile.png');

        dataStream.on('data', chunk => {
          size += chunk.length;
          binary.write(chunk);
        });
        dataStream.on('end', () => {
          binary.end();
          resolve(binary);
        });
      });
    });
  }

1 Ответ

0 голосов
/ 04 января 2019

это должно работать:

// This is my controller
async getFile(@Param('bucketname') bucketName: string, @Param('filename') fileName: string, @Res() response) {
  return (await this.appService.getFile(bucketName, fileName)).pipe(response);
}
...