Há um File
objeto em JavaScript. Quero instanciar um para fins de teste.
Eu tentei new File()
, mas recebo um erro "Construtor ilegal".
É possível criar um File
objeto?
Referência de objeto do arquivo: https://developer.mozilla.org/en/DOM/File
javascript
file-upload
upload
julesbou
fonte
fonte
Illegal constructor
no Chrome 37 / Ubuntu, portanto, não, ele não funciona.file = new Blob([blobdata], {type: filetype, lastModified: filelastModified}); file.name = filename
Agora você pode!
fonte
new File([], '')
Illegal constructor
no Chrome 37 / UbuntuUse um Blob
Como alternativa, existe um Blob que você pode usar no lugar do File , pois é o que a interface do File deriva conforme a especificação do W3C :
Crie o Blob
Usar o BlobBuilder como este em um método JavaScript existente que leva um arquivo para carregar via
XMLHttpRequest
e fornece um Blob para ele funciona bem da seguinte maneira:Exemplo estendido
O restante da amostra está no jsFiddle de uma maneira mais completa, mas não será carregado com êxito, pois não posso expor a lógica de upload a longo prazo.
fonte
DataTransferItemList.add
File
não requerBlob
. Então, para a pergunta original: Como instanciar o arquivo ?Agora é possível e suportado por todos os principais navegadores: https://developer.mozilla.org/en-US/docs/Web/API/File/File
fonte
A idéia ... Para criar um objeto File (api) em javaScript para imagens já presentes no DOM:
Não faça isso! ... (mas eu fiz assim mesmo)
-> o console fornece um resultado semelhante ao de um arquivo de objeto:
Mas o tamanho do objeto está errado ...
Por que eu preciso fazer isso?
Por exemplo, para retransmitir um formulário de imagem já carregado, durante uma atualização do produto, juntamente com imagens adicionais adicionadas durante a atualização
fonte
Como isso é javascript e dinâmico, você pode definir sua própria classe que corresponda à interface File e usá-la.
Eu tive que fazer exatamente isso com o dropzone.js, porque queria simular um upload de arquivo e ele funciona em objetos de arquivo.
fonte