Saltar al contenido

‘HttpPostedFileBase’ en Asp.Net Core 2.0

Mantén la atención porque en esta división vas a encontrar el arreglo que buscas.Este artículo fue analizado por nuestros expertos para asegurar la calidad y exactitud de nuestro post.

Solución:

no tienes HttpPostedFileBase en ASP.NET Core 2.0, pero puede usar IFormFile.

[HttpPost("UploadFiles")]
public async Task Post(List files)

    long size = files.Sum(f => f.Length);

    // full path to file in temp location
    var filePath = Path.GetTempFileName();

    foreach (var formFile in files)
    
        if (formFile.Length > 0)
        
            using (var stream = new FileStream(filePath, FileMode.Create))
            
                await formFile.CopyToAsync(stream);
            
        
    

    // process uploaded files
    // Don't rely on or trust the FileName property without validation.

    return Ok(new  count = files.Count, size, filePath);

Más aquí: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1

IFormFile está en el siguiente espacio de nombres Microsoft.AspNetCore.Http.

HttpPostedFileBase no existe en ASP.NET Core. Deberías usar IFormFile ahora, en cambio. Sin embargo, eso solo funciona cuando envía la solicitud como multipart/form-data, lo que probablemente no haga si está trabajando con un marco del lado del cliente como React. Si está publicando JSON, debe configurar el miembro JSON que corresponde con la propiedad de su archivo con el archivo codificado como Base64 string. Del lado del servidor, debe enlazar a byte[].

Si alguien encuentra esto buscando HttpPostedFileBase es posible que esté familiarizado con la escritura de métodos de controlador ASP.NET algo como esto:

public async Task DoThing(MyViewModel model, HttpPostedFileBase fileOne, HttpPostedFileBase fileTwo)

   //process files here

Si desea escribir un equivalente en ASP.NET Core, puede escribirlo así:

public async Task DoThing(MyViewModel model, IFormFile fileOne, IFormFile fileTwo)

   //process files here

es decir, el único cambio necesario para la firma del método es reemplazar HttpPostedFileBase con IFormFile. Luego deberá modificar su método para trabajar con el nuevo tipo de parámetro (por ejemplo, HttpPostedFileBase tiene un InputStream propiedad, mientras que IFormFile tiene un OpenReadStream() método) pero creo que los detalles de esas diferencias están más allá del alcance de esta pregunta.

Calificaciones y reseñas

Si sostienes alguna perplejidad y forma de arreglar nuestro sección puedes escribir una explicación y con deseo lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *