Uso ASP.NET Core multiplataforma escaneo de documentos Web

Si usted es un desarrollador de C #, puede utilizar lo que la tecnología para crear un documento escaneado aplicaciones web multiplataforma? La respuesta es ASP.NET Core y Dynamic Web TWAIN. En este artículo, voy a compartir cómo utilizar estas tecnologías a partir de cero para construir una aplicación web sencilla.

Multiplataforma verdaderas soluciones de escaneo de documentos

¿Por qué Dynamic Web TWAIN escanear documentos para el desarrollo? Este potente SDK función es compatible con Windows, Linux y MacOS.

plataforma de apoyo DWT

instalar

de ASP.NET Core
TWAIN Web dinámica

Construcción de Hello World

Cómo crear un nuevo proyecto central ASP.NET? Usted puede leer el tutorial proporcionado por Microsoft .

mkdir aspnetcoreapp
cd aspnetcoreapp
dotnet new -t web

Este es un archivo que contiene tantas proyecto Web bella. Vamos a crear un proyecto vacío utilizando la línea de comandos:

dotnet new

Este comando sólo genera dos archivos y Program.cs project.json. Para ejecutar la aplicación como un servidor Web:

  1. Modificar Program.cs:
       using System.IO;
       using aspnetcoreapp;
       using Microsoft.AspNetCore.Hosting;
       
       namespace ConsoleApplication
       {
        public class Program
        {
            public static void Main(string[] args)
            {
                var host = new WebHostBuilder()
                    .UseKestrel()
                    .UseContentRoot(Directory.GetCurrentDirectory())
                    .UseStartup<Startup>()
                    .Build();
     
                host.Run();
            }
        }
       }
  1. Project.json para agregar una dependencia:
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.1"
        },
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
        "Microsoft.AspNetCore.StaticFiles": "1.0.0"
      },
      "imports": "dnxcore50"
    }
  }
}

Por dependencia, podemos ejecutar el servidor Web y cargar los recursos estáticos como archivos HTML, archivos CSS y las imágenes.

La creación de Startup.cs:

using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
 
namespace aspnetcoreapp
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            // app.UseDefaultFiles();
            // app.UseStaticFiles();
            app.UseFileServer();
        }
    }
}

El código será cargado como la página index.html por defecto.

Crear una carpeta de archivos estática predeterminada wwwroot . El código de ejemplo para copiar esta carpeta ** ** de \ Samples. Si desea escanear un documento cargado en un servidor Web, ¿cómo hacer? Y guardar la operación de asignación de ruta de archivo, de la siguiente manera:

using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
 
namespace aspnetcoreapp
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            // app.UseDefaultFiles();
            // app.UseStaticFiles();
            app.UseFileServer();
 
            app.Map("/upload", UploadFile);
        }
 
        private static void UploadFile(IApplicationBuilder app)
        {
            app.Run(async context =>
            {
                var files = context.Request.Form.Files;
                var uploads = Path.Combine(Directory.GetCurrentDirectory(), "uploads");
                if (!Directory.Exists(uploads)) {
                    Directory.CreateDirectory(uploads);
                }
 
                foreach (var file in files)
                {
                    var filename = file.FileName;
                    using (var fileStream = new FileStream(Path.Combine(uploads, filename), FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);
                    }
                }
            });
        }
    }
}

Ahora ejecuta el proyecto Web:

dotnet restore
dotnet run

Acceso localhost: 5000 para escanear en un navegador web y subir documentos.

Los resultados operativos

uso MVC

Si desea tomar más medidas, se recomienda utilizar MVC. Nos fijamos en cómo cambiar el código.

En dependencias add project.json:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.1"
        },
        "Microsoft.AspNetCore.Mvc": "1.0.1",
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
        "Microsoft.AspNetCore.StaticFiles": "1.0.0"
      },
      "imports": "dnxcore50"
    }
  },
 
  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  }
}

Adición de servicio MVC y reemplazado con un mapa de rutas Startup.cs en MVC:

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
 
namespace aspnetcoreapp
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            app.UseStaticFiles();
 
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
 
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }
    }
}

El controlador por defecto para el hogar , la acción predeterminada para el Índice . Deje wwwroot / index.html movimiento a la Views / Home / el Index.cshtml . No quiero añadir ningún código, pero cambiar el sufijo de archivo. Crear un index.cshtml presentación de los controladores / HomeController.cs :

using Microsoft.AspNetCore.Mvc;
 
namespace aspnetcoreapp.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}

Hasta el momento, podemos funcionar sin problemas y mostrar la página web. El siguiente paso es realizar la función para subir archivos.

index.cshtml abierta y cambiar la página de funcionamiento:

var strActionPage = CurrentPath + "upload";

Para hacer frente a la página de funcionamiento, debemos crear los controladores / UploadController.cs :

using Microsoft.AspNetCore.Mvc;
using System.IO;
 
namespace aspnetcoreapp.Controllers
{
    public class UploadController : Controller
    {
        [HttpPost]
        public void Index()
        {
            var files = Request.Form.Files;
            var uploads = Path.Combine(Directory.GetCurrentDirectory(), "uploads");
            if (!Directory.Exists(uploads))
            {
                Directory.CreateDirectory(uploads);
            }
 
            foreach (var file in files)
            {
                var filename = file.FileName;
                using (var fileStream = new FileStream(Path.Combine(uploads, filename), FileMode.Create))
                {
                    file.CopyTo(fileStream);
                    fileStream.Flush();
                }
            }
        }
    }
}

Es eso. Muy simple!

Código fuente

https://github.com/dynamsoft-dwt/ASP.NET-Core

Publicado seis artículos originales · ganado elogios 0 · Vistas 1383

Supongo que te gusta

Origin blog.csdn.net/weixin_44795817/article/details/89031747
Recomendado
Clasificación