Optimiser un upload de fichier et la lecture
Résolu
danieljsessec
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
danieljsessec Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
danieljsessec Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerai savoir s'il existe des manières d'optimiser un upload de fichier géré en Javascript.
J'explique, j'ai un formulaire et je peux uploader n'importe quel fichier, ce fichier je le lis ensuite via un arrayBuffer pour récupérer les octets du fichier sous la forme d'un int, cependant le traitement est relativement rapide sur des petits fichiers, mais sur un fichier à 5Mo rien que là ça plante, il y aurait-il un moyen de lire bloc par bloc ? ou de rendre ça asynchrone (en partant du principe que je dois garder mes octets dans l'ordre)
J'aimerai savoir s'il existe des manières d'optimiser un upload de fichier géré en Javascript.
J'explique, j'ai un formulaire et je peux uploader n'importe quel fichier, ce fichier je le lis ensuite via un arrayBuffer pour récupérer les octets du fichier sous la forme d'un int, cependant le traitement est relativement rapide sur des petits fichiers, mais sur un fichier à 5Mo rien que là ça plante, il y aurait-il un moyen de lire bloc par bloc ? ou de rendre ça asynchrone (en partant du principe que je dois garder mes octets dans l'ordre)
A voir également:
- Optimiser un upload de fichier et la lecture
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Optimiser son pc - Accueil - Utilitaires
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
4 réponses
Bonjour,
Sans le code, c'est dur d'aider ...
Après, je ne comprends pas ce que tu essais de faire en voulant faire un upload lu octet par octet !
Il faut nous en dire plus
Cordialement,
Sans le code, c'est dur d'aider ...
Après, je ne comprends pas ce que tu essais de faire en voulant faire un upload lu octet par octet !
Il faut nous en dire plus
Cordialement,
Bonjour,
Merci pour ta réponse oui sans le code c'est dur certes mais ce n'est qu'une simple lecture avec FileReader
Je le lis octet par octet car je veux encoder mon fichier via des algorithmes de chiffrement que j'ai écrit à côté de mon programme.
De ce fait je lis octet par octet, je transforme mon octet et j'écris le nouvel octet dans un nouveau fichier, mais la partie qui ralenti le process c'est la lecture et je vois pas comment optimiser ça
Merci pour ta réponse oui sans le code c'est dur certes mais ce n'est qu'une simple lecture avec FileReader
let reader = new FileReader(); reader.readAsArrayBuffer(document.getElementById('mon_input_file').files[0]);
Je le lis octet par octet car je veux encoder mon fichier via des algorithmes de chiffrement que j'ai écrit à côté de mon programme.
De ce fait je lis octet par octet, je transforme mon octet et j'écris le nouvel octet dans un nouveau fichier, mais la partie qui ralenti le process c'est la lecture et je vois pas comment optimiser ça
Il existe Blob.slice() dont File hérite qui permet de découper un fichier, mais JavaScript étant de nature mono-thread, je doute que vous en retiriez un quelqueconque gain de performance nativement. Je vous conseille de voir au sujet des Web Workers qui permettent le travail en parallèle. Pour des raisons de sécurité cependant, Chrome et Opera les bloquent en local via file:// ; vous devez alors utiliser un véritable serveur http, facilement montable avec Node.js. Dès lors, il s'agirait en effet de découper le fichier en parties, les identifier puis lancer un thread qui lit et transforme chaque partie dans un nouveau Worker. Rassembler ensuite les parties selon l'identifiant. Voyez en introduction : https://developer.mozilla.org/fr/docs/Web/API/Web_Workers_API/Utilisation_des_web_workers
Bon succès,
Bon succès,
Merci pour votre réponse, les Web Workers semblent être ce dont j'ai besoin !
Je vais tester des codes et je mettrai le sujet en résolu avec des exemples
Pour ceux que ça pourrait intéresser j'ai trouvé ceci : https://www.html5rocks.com/en/tutorials/file/filesystem-sync/
Je vais tester des codes et je mettrai le sujet en résolu avec des exemples
Pour ceux que ça pourrait intéresser j'ai trouvé ceci : https://www.html5rocks.com/en/tutorials/file/filesystem-sync/