ASP.NET - Capturar WebCam ASP.NET CORE MVC

 
Vista:
sin imagen de perfil

Capturar WebCam ASP.NET CORE MVC

Publicado por Carlos Leyva (4 intervenciones) el 24/04/2023 01:18:16
Hola buenas tardes, estoy con un error en el proyecto ASP.NET CORE MVC,
captura la foto e una webcam,
me muestra la foto impresa, y me da el mensaje "Photo captured",
pero no me graba las fotos en la carpeta "CameraPhotos" del servidor.

Me podría ayudar indicando que tengo mal, llevo un rato revisando y no encuentro el problema.

@{
Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>WebCamJS Test Page</title>
<link href="~/lib/bootstrap/dist/css/bootstrap.css" rel="stylesheet"/>
<style type="text/css">
body {
font-family:Arial, Helvetica, sans-serif;
}
h2,h3{
margin-top:auto;
}
form{
margin-top:15px;
}
#buttonhide{
background:transparent;
border:none !important;
font-size:inherit;
}
</style>
</head>
<body class="container">
<br />
<div class="col-md-2"></div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
Camera
</div>
<div class="panel-body">
<div id="my_camera"></div>
<form>
<input type="button" class="btn btn-success" value="Take Snapshot" onclick="take_snapshot()"/>
</form>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
Captured Photo
</div>
<div class="panel-body">
<div id="results">Your captured image will appear hear...</div>
</div>
<br />
<br />
</div>
</div>
<div class="col-md-2"></div>
<script src="~/webcamjs/webcam.js"></script>
<script language="JavaScript">
Webcam.set({
width: 320,
height: 240,
image_format: 'jpeg',
jpeg_quality:90
});
Webcam.attach('#my_camera');
</script>
<script language="JavaScript">
function take_snapshot() {
Webcam.snap(function(data_uri){
document.getElementById('results').innerHTML =
'<img src="' +
data_uri +
'"/>';
Webcam.upload(data_uri,
'Camera/Capture',
function(code, text) {
alert('Photo captured');
});
});
}
</script>
</body>
</html>


CameraController:

using Microsoft.AspNetCore.Mvc;
namespace ProyectoVenta.Controllers
{
public class CameraController : Controller
{
private readonly IWebHostEnvironment _environment;

public CameraController(IWebHostEnvironment environment)
{
_environment = environment;
}

public IActionResult Capture()
{
return View();
}
[HttpPost]
public IActionResult Capture(string name)
{
try
{
var files = HttpContext.Request.Form.Files;
if (files != null)
{
foreach (var file in files)
{
if (file.Length > 0)
{
var fileName = file.FileName;
var myUniqueFileName = Convert.ToString(Guid.NewGuid());
var fileExtension = Path.GetExtension(fileName);
var newFileName = string.Concat(myUniqueFileName, fileExtension);
var filePath = Path.Combine(_environment.WebRootPath, "CameraPhotos") + $@"\{newFileName}";
if (!string.IsNullOrEmpty(filePath))
{
StoreInFolder(file, filePath);
}
var imageBytes = System.IO.File.ReadAllBytes(filePath);
if (imageBytes != null)
{
StoreInDatabase(imageBytes);
}
}
}
return Json(true);
}
else { return Json(false); }
}
catch (Exception)
{
throw;
}
}
private void StoreInFolder(IFormFile file, string fileName)
{
using (FileStream fs = System.IO.File.Create(fileName))
{
file.CopyTo(fs);
fs.Flush();
}
}
private void StoreInDatabase(byte[] imageBytes)
{
//Saving captured into database

}

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Capturar WebCam ASP.NET CORE MVC

Publicado por Carlos Leyva (4 intervenciones) el 24/04/2023 17:04:20
Gracias ya encontré el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Capturar WebCam ASP.NET CORE MVC

Publicado por Carlos (4 intervenciones) el 24/04/2023 18:13:49
Otra consulta como puedo enviar otra variable adicional dentro del JavaScript webcam.js

<script language="JavaScript">
function take_snapshot() {
Webcam.snap(function(data_uri){
document.getElementById('results').innerHTML =
'<img src="' +
data_uri +
'"/>';
Webcam.upload(data_uri,
'Capture',
function(code, text) {
alert('Photo captured');
});
});
}
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar