Inicie el IDE Visual Studio 2022. Haga clic en «Crear nuevo proyecto». En la ventana «Crear nuevo proyecto», seleccione «API web Core ASP.NET» de la lista de plantillas que se muestran. Haga clic en Siguiente. En la ventana «Configurar su nuevo proyecto», especifique el nombre y la ubicación del nuevo proyecto. Opcionalmente, marque la casilla de verificación «Coloque la solución y el proyecto en el mismo directorio», dependiendo de sus preferencias. Haga clic en Siguiente. En la ventana «Información adicional» que se muestra a continuación, seleccione «.NET 9.0 (soporte de término estándar)» como la versión marco y desmarque la casilla de verificación que dice «Usar controladores», ya que utilizaremos API mínimas en este proyecto. En otra parte de la ventana «Información adicional», deje el «tipo de autenticación» establecido en «Ninguno» (el valor predeterminado) y asegúrese de que las casillas de verificación «habiliten el soporte de API abierto», «Configure para HTTPS» y «Habilitar Docker» permanezca sin control. No usaremos ninguna de esas características aquí. Haga clic en Crear. Usaremos este proyecto ASP.NET Core Web API para trabajar con los ejemplos de código que se dan en las secciones a continuación. Iformfile y iformfilecollection en el núcleo ASP.NET en las versiones recientes de ASP.NET Core, las API mínimas proporcionan soporte para cargar archivos utilizando las interfaces IformFile e IformFileCollection. Mientras que Iformfile se usa para cargar un solo archivo, iformfileCollection se usa para cargar varios archivos. El siguiente fragmento de código ilustra cómo puede cargar un solo archivo usando iformfile en su aplicación API mínima. app.mappost («/upload», async (iformfile file) => {var tempfile = path.gettempfileName (); usando var fileStream = file.openwrite (tempfile); espera file.copytoasync (fileStream);}); Tenga en cuenta que el método File.openWrite acepta la ruta a un archivo en su sistema de archivos como parámetro y devuelve una instancia de FileStream. Como su nombre lo indica, un objeto FilEndeam proporciona una secuencia para un archivo, lo que significa una secuencia de bytes. Del mismo modo, la siguiente pieza de código muestra cómo puede cargar varios archivos utilizando la interfaz iformfileCollection. app.mappost («/upload_multiple_files», async (iformfileCollection archivos) => {foreach (archivo var en archivos) {var tempfile = path.gettempfileName (); usando var fileSteam = file.openwrite (tempfile); await file.copytoasnc (fileSteam);}}}); A menudo querremos hacer más con un archivo que simplemente subirlo. Si queremos analizar o manipular el contenido de un archivo [OK?]Podemos aprovechar la clase StreamReader. StreamReader es una clase de alto nivel, construida en la parte superior del FilErteam, que nos permite leer los caracteres de una transmisión de byte. StreamReader también puede manejar la codificación de caracteres (UTF-8, ASCII, etc.) si es necesario. Supongamos que tiene un archivo que contiene registros de autor que desea insertar en una tabla de base de datos. Suponiendo que cada línea de texto en el archivo representa un registro de autor diferente, puede incluir el siguiente código en su archivo Program.CS para cargar el contenido del archivo, línea por línea, a un punto final API mínimo. app.mappost («/autor/upload», (archivo iformfile,
[FromServices] IauthorRepository AuthorRepository) => {usando var streamReader = new StreamReader (file.openReadstream ()); while (StreamReader.Peek ()> = 0) AuthorRepository.Create (StreamReader.Readline () ?? String.empty); }); Puede usar el fragmento de código anterior para leer una colección de datos del autor representados como JSON, por ejemplo, e insertar esos registros en una tabla de base de datos. Tenga en cuenta que he omitido el código fuente de la interfaz iauthorRepository y sus clases implementadas aquí para brevedad. Evitando los errores anti-forgery al cargar archivos al cargar archivos en ASP.NET Core, a menudo puede encontrar errores anti-forgery. ASP.NET Core emite estos errores para advertir sobre los ataques de falsificación de solicitudes de sitios cruzados. Figura 1: ASP.NET Core puede generar un error anti-forgery al cargar un archivo. Foundry Si su punto final es seguro y no requiere protección contra la muerte, puede deshabilitar la validación anti-forgery para el punto final utilizando el método de discapacidad, como se muestra en el siguiente código.
Deja una respuesta