Estoy usando el siguiente código para recuperar un archivo del servidor para que el cliente pueda descargarlo. ¿Hay alguna manera de saber qué archivos se han descargado? ¿Tal vez si un archivo de texto pudiera almacenarse en algún lugar que pudiera seguir agregando nombres de archivo a medida que se descargan?
function downloadPdf(){ //fetch the registrationId from the input#url let registrationId = document.getElementById("url").value; //transform the registrationId string to lower case registrationId = registrationId.trim().toLowerCase(); const pdfUrl = `/ooecertificate/${registrationId}.pdf`; //this is the statement to redirect the browser to the wanted url //now commented because it wouldn't work here on the snippet //window.location.href = pdfUrl; //on its behalf I'm writing the url on console console.log(pdfUrl); }
label.fieldLabel{ display: block; margin-bottom: 1rem; } label.fieldDescription{ display: block; margin-bottom: 1rem; border: solid 1px gray; padding: 1em; } button{ cursor: pointer; }
<div> <label class="fieldDescription"> Your registration id is your firstname+registered email id:<br> For example..<br> if your name is SAMMY DIXIT and your registered email id is SAMMY.DIXIT@GMAIL.COM<br> your REGISTRATION ID WILL BE: <b>sammysammy.dixit@gmail.com</b> </label> <label class="fieldLabel">ENTER YOUR REGISTRATION ID:</label> <input type="text" name="url" id="url"> <button onclick="downloadPdf();">Download</button> </div>
Hay dos formas de almacenar la información del conteo de descargas:
en una BASE DE DATOS
Esta sería la mejor manera ya que tendría acceso a la base de datos desde cualquier lugar.
La desventaja es que debe implementar una conexión entre una base de datos alojada en la nube o una base de datos alojada en un servidor. En ambos sentidos tendrías que pagar por el servicio (aunque hay algunas alternativas gratuitas y limitadas).
en un ARCHIVO
Puede almacenar la información en un archivo .txt local y actualizarlo cada vez que un usuario haga clic en el botón de descarga, pero esto solo funcionaría en la misma computadora y no se recomienda hacerlo.
Espero que esto te ayude