Ciao Optime, la pagina è asp e ho trovato e riadattato codice java per fare una parte di quello di cui necessito, cioè scattare una foto da un device agganciato al pc, per poi salvarle in una cartella che decido io, e il problema è proprio lì; cioè me la salva sempre sotto la cartella download di windows.
codice:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>FUNCTIONAL CLINIC FITP: IL SOFTWARE PROFESSIONALE</title>
<link href="stile.css" rel="stylesheet" type="text/css" />
<link rel="icon" href="images/logo1.ico" />
<script type="text/javascript">
function chiudi() {
self.close();
}
</script>
<script type="text/javascript">
// The width and height of the captured photo. We will set the
// width to the value defined here, but the height will be
// calculated based on the aspect ratio of the input stream.
const width = 3460; // We will scale the photo width to this
let height = 0; // This will be computed based on the input stream
// |streaming| indicates whether or not we're currently streaming
// video from the camera. Obviously, we start at false.
let streaming = false;
// The various HTML elements we need to configure or control. These
// will be set by the startup() function.
let video = null;
let canvas = null;
let photo = null;
let startButton = null;
function showViewLiveResultButton() {
if (window.self !== window.top) {
// Ensure that if our document is in a frame, we get the user
// to first open it in its own tab or window. Otherwise, it
// won't be able to request permission for camera access.
document.querySelector(".content-area").remove();
const button = document.createElement("button");
button.textContent = "View live result of the example code above";
document.body.append(button);
//button.addEventListener("click", () => window.open(location.href));
return true;
}
return false;
}
function startup() {
if (showViewLiveResultButton()) {
return;
}
video = document.getElementById("video");
canvas = document.getElementById("canvas");
photo = document.getElementById("photo");
startButton = document.getElementById("start-button");
navigator.mediaDevices
.getUserMedia({ video: true, audio: false })
.then((stream) => {
video.srcObject = stream;
video.play();
})
.catch((err) => {
console.error(`An error occurred: ${err}`);
});
video.addEventListener(
"canplay",
(ev) => {
if (!streaming) {
height = video.videoHeight / (video.videoWidth / width);
// Firefox currently has a bug where the height can't be read from
// the video, so we will make assumptions if this happens.
if (isNaN(height)) {
height = width / (4 / 3);
}
video.setAttribute("width", width);
video.setAttribute("height", height);
canvas.setAttribute("width", width);
canvas.setAttribute("height", height);
streaming = true;
}
},
false,
);
startButton.addEventListener(
"click",
(ev) => {
takePicture();
ev.preventDefault();
},
false,
);
clearPhoto();
}
// Fill the photo with an indication that none has been
// captured.
function clearPhoto() {
const context = canvas.getContext("2d");
context.fillStyle = "#AAA";
context.fillRect(0, 0, canvas.width, canvas.height);
const data = canvas.toDataURL("image/jpg");
photo.setAttribute("src", data);
}
// Capture a photo by fetching the current contents of the video
// and drawing it into a canvas, then converting that to a PNG or JPG
// format data URL. By drawing it on an offscreen canvas and then
// drawing that to the screen, we can change its size and/or apply
// other changes before drawing it.
function takePicture() {
const context = canvas.getContext("2d");
if (width && height) {
canvas.width = width;
canvas.height = height;
context.drawImage(video, 0, 0, width, height);
//const data = canvas.toDataURL("image/png")
var data = canvas.toDataURL("image/jpg").replace("image/jpg", "image/octet-stream");
photo.setAttribute("src", data);
//window.setTimeout("downloadImage(data, 'photo<%=Id%>.png')", 2000);
var a = document.createElement('a');
a.href = data;
a.download = "C:\Certaldo\public\FITP\Foto"+'photo<%=Id%>.jpg';
document.body.appendChild(a);
//ISTRUZIONE CON IL QUALE SI FA IL DOWNLOAD
a.click();
document.Modulo2.action = "carica_FOTO1.asp?F="+a.download+'&S1='+width+'&S2='+height;
document.Modulo2.submit();
} else {
clearPhoto();
}
}
// Set up our event listener to run the startup process
// once loading is complete.
window.addEventListener("load", startup, false);
</script>
</head>
<body bgcolor="#000000">
<form method="post" name="Modulo2" enctype="multipart/form-data">
<div class="content-area">
<div class="camera">
<video id="video">Video stream not available.</video>
<input type="button" id="start-button" value="SCATTA">
</div>
<canvas id="canvas"> </canvas>
<div class="output">
<img id="photo" name="photo" alt="" />
</div>
</div>
<input name="hiddenId1" type="hidden" id="hiddenId1" value="<%=request.QueryString("Col2")%>">
<input name="hiddenData1" type="hidden" id="hiddenData1" value="<%=Dat%>">
</form>