【问题标题】:Saving files in file system in Nestjs在 Nestjs 的文件系统中保存文件
【发布时间】:2020-08-09 13:03:56
【问题描述】:

我想将使用multipart/form-data从客户端发送的图像的URL存储在我的MySQL数据库中。我关注了文档,但我真的不知道应该如何在服务器文件系统中保存图像并将 URL 返回给客户端。

这是我的代码:

@ApiTags('product-image')
@Controller('product-image')
export class ProductImageController {
  constructor(public service: ProductImageService) {
  }

  @Post('upload')
  @UseInterceptors(FilesInterceptor('files'))
  uploadImage(@UploadedFiles() files) {
    console.log(files);
    // How can I save image files in
    // a custom path and return the path
    // back to the client?

  }
}

【问题讨论】:

    标签: javascript mysql node.js nestjs


    【解决方案1】:

    试试这个

    import { FilesInterceptor } from '@nestjs/platform-express';
    import { diskStorage } from 'multer';
    
    @Post('upload')
        @UseInterceptors(
            FilesInterceptor('files', 20, {
              storage: diskStorage({
                destination: './uploads/',
                filename: editFileName,
              }),
            //   fileFilter: imageFileFilter,
            }),
          )
          uploadMultipleFiles(@UploadedFiles() files) {
            const response = [];
            files.forEach(file => {
              const fileReponse = {
                filename: file.filename,
              };
              response.push(fileReponse);
            });
            return response;
          }
    

    【讨论】:

    • 不过还有一个问题:如何将图像返回给客户端?在express中,我们一般都是res.end(),在nestjs中怎么返回图片呢?
    • @Get('image/:imgpath') seeUploadedFile(@Param('imgpath') image, @Res() res) { return res.sendFile(image, { root: './uploads ' }); }
    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 2017-01-21
    • 2017-09-22
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 2020-10-13
    相关资源
    最近更新 更多