Изображение запроса POST от клиента c# к Angular API Rest - PullRequest
0 голосов
/ 07 мая 2020

У меня есть API Rest, созданный в режиме localhost с Angular, и я пытаюсь использовать службу с httpClient, код, сделанный на C #; но я получаю сообщение BadRequest, которое в данном случае имеет вид! Elija una imagen !, помогите мне, что я делаю не так?

это Angular код

import {Body, Controller, Delete, Get, HttpException, HttpStatus, Param, Post, Put, Res, UploadedFile, UseGuards, UseInterceptors } from '@nestjs/common'; 
import {extname} from "path";
import {diskStorage} from "multer";
import {arch} from "os";
import {FileInterceptor} from "@nestjs/platform-express";
const path = require('path');

@Controller('imagenSoliTag')
export class ImagenController {

@Post('upload-image')
@UseInterceptors(FileInterceptor('image', {
    storage: diskStorage({
        destination: function (req, file, cb) {
            const fs = require('fs');
            const dir = `./public/SolicitudTag/`;
            if (!fs.existsSync('./public')) {
                fs.mkdirSync('./public');
                fs.mkdirSync('./public/SolicitudTag/');
                fs.mkdirSync(dir);
            } else if (!fs.existsSync('./public/SolicitudTag/')) {
                fs.mkdirSync('./public/SolicitudTag/');
                fs.mkdirSync(dir);
            } else if (!fs.existsSync(dir)) {
                fs.mkdirSync(dir);
            } else {
            }
            cb(null, dir)
        },
        filename: (req, file, cb) => {
            const name = file.originalname.split('.')[0];
            const randomName = "c-";
            cb(null, `${name}${extname(file.originalname)}`)
        },
    }),
    limits: {fileSize: 10485760},
    fileFilter: function fileFilter(req, file, cb) {
        const filetypes = /jpeg|jpg|png/;
        const mimetype = filetypes.test(file.mimetype);
        const extname2 = filetypes.test(extname(file.originalname).toLowerCase());

        if (mimetype && extname2) {
            return cb(null, true);
        } else {
            // cb(new Error('¡Formato de imagen no soportado!'), false);
            cb(null, false);
        }
    }
}))
async uploadImage(@UploadedFile() file) {
    if (file) {

        return {
            response: '¡Imagen guardada con éxito!',
            imagePath: `${file.destination}${file.filename}`.replace('./public/SolicitudTag/', ''),
        };

    } else {
        throw new HttpException('¡Elija una imagen!', HttpStatus.BAD_REQUEST);
    }
}

}

это мой клиентский код в c#

 public class UploadRestClient
{
    private string BASE_URL3 = "http://localhost:3000/imagenSoliTag/";

    public Task<HttpResponseMessage> Upload(FileInfo fileInfo)
    {
        try
        {
            var httpCliente = new HttpClient();
            var multipart = new MultipartFormDataContent();
            httpCliente.BaseAddress = new Uri(BASE_URL3);
            var fileContent = new ByteArrayContent(File.ReadAllBytes(fileInfo.FullName));
            HttpContent content = fileContent;
            multipart.Add(content, "image", "fotocell.jpg");
            return httpCliente.PostAsync("upload-image", multipart);
        }
        catch
        {
            return null;
        }
    }
}

И это консольное сообщение, полученное

1

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