Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376

    salvataggio immagine in cartella definita da utente

    Salve a tutti ho il seguente problema cui non sono riuscito a porre rimedio; ho cercato in lungo e in largo sul web ma non sono riuscito a reperire niente che facesse al caso mio.
    Da pagina asp scatto una foto tramite un qualunque device connesso al pc, riesco a salvare in tabella la larghezza, l'altezza e il nome del file che è composto da una parte fissa+una parte variabile (id cliente); ma non riesco a capire come fare a NON salvare l'immagine nella cartella download ma bensì in una cartella che decido io. Grazie a chi potrà e vorrà aiutarmi. Posto di seguito il codice che uso
    codice:
      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 = 'photo<%=Id%>.jpg';		
    	  document.body.appendChild(a);
          a.click();			
    	  document.Modulo2.action = "carica_FOTO1.asp?F="+a.download+'&S1='+width+'&S2='+height;		
    	  document.Modulo2.submit();		
        } else {
          clearPhoto();
        }
      }
    Chi Crede in Me non Perirà MAI

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Nessuno che mi sappia aiutare?
    Chi Crede in Me non Perirà MAI

  3. #3
    non ho capito: è ASP (così scrivi nel post) o è JavaScript (dal forum) ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    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>
    Chi Crede in Me non Perirà MAI

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,415
    Quote Originariamente inviata da devil946 Visualizza il messaggio
    ho trovato e riadattato codice java per fare una parte di quello di cui necessito
    No, non è codice Java, bensì JavaScript.
    Java sta a JavaScript come "cane" sta a "canestro".

    Quote Originariamente inviata da devil946 Visualizza il messaggio
    il problema è proprio lì; cioè me la salva sempre sotto la cartella download di windows.
    Non puoi scegliere quale cartella utilizzare, per ovvi motivi di sicurezza.
    Se qualunque pagina Web potesse scrivere file dove desidera, sarebbe un bel problemino...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Grazie Alka. Hai ragione java non c'entra niente il codice è javascript.
    Ma detto questo, come posso risolvere il mio problema?
    Chi Crede in Me non Perirà MAI

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Si potrebbe fargliela salvare oltre che sotto la cartella predefinita download anche in altra cartella che decide l'utente?
    Chi Crede in Me non Perirà MAI

  8. #8
    è un'impostazione del browser: se, al download, far decidere all'utente dove salvare

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Quindi quale soluzione mi prospetti per poter far in modo di salvare la foto che scatto con il device nella cartella che decido io?
    Si potrebbe memorizzare la foto in un campo nascosto e poi usarlo per fare upload in cartella definita da utente? (anche se non saprei come fare :-(
    Chi Crede in Me non Perirà MAI

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Quindi quale soluzione mi prospetti per poter far in modo di salvare la foto che scatto con il device nella cartella che decido io?
    Si potrebbe memorizzare la foto in un campo nascosto e poi usarlo per fare upload in cartella definita da utente? (anche se non saprei come fare :-(
    Chi Crede in Me non Perirà MAI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.