Existe um objeto de arquivo em JavaScript; o objeto de arquivo representa um arquivo e é usado para ler e gravar informações do arquivo. Este objeto herda o objeto Blob e estende as funções relacionadas ao sistema de arquivos. um objeto Blob pode ser usado; ele pode usar o construtor "new File(fileParts, fileName, [options])" para obter o objeto de arquivo.
O ambiente operacional deste tutorial: sistema Windows 10, JavaScript versão 1.8.5, computador Dell G3.
Objeto de arquivo
O objeto File representa um arquivo e é usado para ler e gravar informações do arquivo. Ele herda o objeto Blob, ou é um objeto Blob especial, que pode ser usado em todas as situações em que o objeto Blob pode ser usado.
O caso de uso mais comum é o controle de upload de arquivo () do formulário. Depois que o usuário seleciona um arquivo, o navegador irá gerar uma matriz contendo cada arquivo selecionado pelo usuário.
// O código HTML é o seguinte // <input id="fileItem" type="file">var file = document.getElementById('fileItem').files[0];file instanceof File // trueNo código acima, arquivo é o primeiro arquivo selecionado pelo usuário, que é uma instância de Arquivo.
Construtor
O navegador fornece nativamente um construtor File() para gerar objetos de instância File.
novo arquivo (matriz, nome [, opções])
O construtor File() aceita três parâmetros.
Array: Um array cujos membros podem ser objetos binários ou strings, representando o conteúdo do arquivo.
nome: String, representando o nome do arquivo ou caminho do arquivo.
opções: Objeto de configuração, defina os atributos da instância. Este parâmetro é opcional.
O terceiro parâmetro configura o objeto e pode definir duas propriedades.
type: String, indicando o tipo MIME do objeto de instância. O valor padrão é uma string vazia.
lastModified: Timestamp, indicando a hora da última modificação, o padrão é Date.now().
Abaixo está um exemplo.
var arquivo = new Arquivo(['foo'], 'foo.txt', { type: 'text/plain', });Propriedades e métodos de instância
Os objetos de arquivo possuem as seguintes propriedades de instância.
File.lastModified: hora da última modificação
File.name: nome do arquivo ou caminho do arquivo
File.size: tamanho do arquivo (bytes unitários)
File.type: tipo MIME do arquivo
var meuArquivo = new Arquivo([], 'arquivo.bin', { lastModified: new Date(2018, 1, 1),});meuArquivo.lastModified // 1517414400000meuArquivo.name // "arquivo.bin"meuArquivo.size / /0myFile.type // ""No código acima, como o conteúdo de myFile está vazio e o tipo MIME não está definido, o atributo size é igual a 0 e o atributo type é igual à string vazia.
O objeto File não possui seu próprio método de instância, pois herda o objeto Blob, você pode usar o método de instância Blob slice().
Amplie seu conhecimento:
Existem duas maneiras de obtê-lo.
novo arquivo(fileParts, fileName, [opções])
fileParts - Matriz de valores do tipo Blob/BufferSource/String.
fileName - string do nome do arquivo.
opções - objeto opcional:
lastModified – O carimbo de data/hora da última modificação (data inteira).Mais comumente, obtemos arquivos de <input type="file"> ou arrastamos e soltamos ou outras interfaces de navegador. Nesse caso, o arquivo obterá essas informações do sistema operacional (SO).
Como File herda de Blob, o objeto File tem as mesmas propriedades, mais:
name - nome do arquivo, lastModified - o carimbo de data/hora da última modificação.É assim que obtemos o objeto File de <input type="file">:
<input type="file" onchange="showFile(this)"><script>function showFile(input) { let file = input.files[0]; // Por exemplo my.png alert(`Última modificação: ${file.lastModified}`); // Por exemplo 1552830408824}</script>; Detalhes: Observe:
A entrada pode selecionar vários arquivos, então input.files é um objeto semelhante a um array. Aqui temos apenas um arquivo, então pegamos apenas input.files[0].