Dentro del código, creo un elemento de entrada con el tipo de archivo. No lo agrego al árbol. Quiero obtener el valor de esta entrada después de que el usuario la agregue al archivo. Hay uno, pero no necesito agregar esta entrada a la plantilla HTML.
<p-splitButton label="Add document" icon="pi pi-plus" (onClick)="openAddDocument()" [model]="addDocumentButtonMenuItems" styleClass="p-button-help" ></p-splitButton> public readonly addDocumentButtonMenuItems = [ { label: 'Dowload document', icon: 'pi pi-upload', command: () => { this.uploadFile(); }, }, ]; public uploadFile(): void { const input = document.createElement('input'); input.type = 'file'; input.click(); }¿Cómo obtener entrada de valor?
para obtener el valor de archivo de un archivo de entrada, puede usar myinput.files[0]; después de un evento de change en la entrada
pero tenga cuidado en el navegador moderno, no puede abrir el cuadro de diálogo del archivo desde el script sin una acción del usuario (haga clic para obtener una muestra)
js:14 El cuadro de diálogo del selector de archivos solo se puede mostrar con una activación del usuario.
en el siguiente enlace encontrará una solución para abrir un cuadro de diálogo de archivo con js nativo ¿Cómo abrir un cuadro de diálogo de archivo/exploración usando javascript?
puede vincular el evento onChange del archivo de entrada para obtener el archivo elegido
var fileInput = document.getElementById('theFile'); fileInput.addEventListener('change', function() { var selectedFile = document.getElementById('theFile').files[0]; console.log(selectedFile.name); }); function performClick(elemId) { var elem = document.getElementById(elemId); if(elem && document.createEvent) { var evt = document.createEvent("MouseEvents"); evt.initEvent("click", true, false); elem.dispatchEvent(evt); } } var fileInput = document.getElementById('theFile'); fileInput.addEventListener('change', function() { var selectedFile = document.getElementById('theFile').files[0]; console.log(selectedFile.name); }); <a href="#" onclick="performClick('theFile');">Open file dialog</a> <input type="file" id="theFile" />