Hay un objeto de archivo en JavaScript; el objeto de archivo representa un archivo y se usa para leer y escribir información del archivo. Este objeto hereda el objeto Blob y extiende las funciones relacionadas con el sistema de archivos. se puede utilizar un objeto Blob; puede utilizar el constructor "nuevo archivo (partes de archivo, nombre de archivo, [opciones])" para obtener el objeto de archivo.
El entorno operativo de este tutorial: sistema Windows 10, versión JavaScript 1.8.5, computadora Dell G3.
Objeto de archivo
El objeto Archivo representa un archivo y se utiliza para leer y escribir información del archivo. Hereda el objeto Blob, o es un objeto Blob especial, que se puede usar en todas las situaciones donde se puede usar el objeto Blob.
El caso de uso más común es el control de carga de archivos () del formulario. Después de que el usuario selecciona un archivo, el navegador generará una matriz que contiene cada archivo seleccionado por el usuario. Todos son objetos de instancia de archivo.
// El código HTML es el siguiente // <input id="fileItem" type="file">var file = document.getElementById('fileItem').files[0];filestanceof File // verdaderoEn el código anterior, archivo es el primer archivo seleccionado por el usuario, que es una instancia de Archivo.
Constructor
El navegador proporciona de forma nativa un constructor File() para generar objetos de instancia de File.
nuevo archivo (matriz, nombre [, opciones])
El constructor File() acepta tres parámetros.
Matriz: una matriz cuyos miembros pueden ser objetos binarios o cadenas, que representan el contenido del archivo.
nombre: Cadena, que representa el nombre del archivo o la ruta del archivo.
Opciones: Objeto de configuración, establece los atributos de la instancia. Este parámetro es opcional.
El tercer parámetro configura el objeto y puede establecer dos propiedades.
tipo: cadena, que indica el tipo MIME del objeto de instancia. El valor predeterminado es una cadena vacía.
lastModified: marca de tiempo, que indica la última hora de modificación, el valor predeterminado es Date.now ().
A continuación se muestra un ejemplo.
var archivo = nuevo archivo(['foo'], 'foo.txt', {tipo: 'texto/plain', });Propiedades de instancia y métodos de instancia
Los objetos de archivo tienen las siguientes propiedades de instancia.
File.lastModified: hora de la última modificación
File.name: nombre de archivo o ruta de archivo
File.size: tamaño del archivo (bytes de unidad)
File.type: tipo MIME del archivo
var myFile = new File([], 'file.bin', { lastModified: new Date(2018, 1, 1),});myFile.lastModified // 1517414400000myFile.name // "file.bin"myFile.size / / 0miArchivo.tipo // ""En el código anterior, dado que el contenido de myFile está vacío y el tipo MIME no está configurado, el atributo de tamaño es igual a 0 y el atributo de tipo es igual a la cadena vacía.
El objeto Archivo no tiene su propio método de instancia. Dado que hereda el objeto Blob, puede utilizar el método de instancia Blob slice().
Amplíe sus conocimientos:
Hay dos formas de obtenerlo.
nuevo archivo (partes del archivo, nombre del archivo, [opciones])
fileParts: matriz de valores de tipo Blob/BufferSource/String.
fileName: cadena de nombre de archivo.
opciones - objeto opcional:
lastModified: la marca de tiempo de la última modificación (fecha entera).Más comúnmente, obtenemos archivos de <input type="file"> o de arrastrar y soltar u otras interfaces del navegador. En este caso, el archivo obtendrá esta información del sistema operativo (OS).
Dado que File hereda de Blob, el objeto File tiene las mismas propiedades, además de:
nombre: nombre del archivo, últimoModificado: la marca de tiempo de la última modificación.Así es como obtenemos el objeto Archivo de <input type="file">:
<input type="file" onchange="showFile(this)"><script>function showFile(input) { let file = input.files[0](`Nombre de archivo: ${file.name}`); // Por ejemplo my.png alert(`Última modificación: ${file.lastModified}` // Por ejemplo 1552830408824}</script>Detalles: Tenga en cuenta:
La entrada puede seleccionar varios archivos, por lo que input.files es un objeto similar a una matriz. Aquí solo tenemos un archivo, así que solo tomamos input.files[0].