У меня есть 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;
}
}
}
И это консольное сообщение, полученное