J'ai une base de formulaire HTML à partir de laquelle je peux prendre un peu d'information que je suis en examen dans Firebug.
Mon seul problèmes c'est que je suis en train de base64 encode le fichier de données avant d'être envoyé vers le serveur où il est nécessaire d'être dans ce formulaire pour être enregistré dans la base de données.
<input type="file" id="fileupload" />
Et en Javascript+jQuery:
var file = $('#fileupload').attr("files")[0];
J'ai quelques opérations de base sur disponible javascript: .getAsBinary(), .getAsText(), .getAsTextURL
Toutefois, aucun de ces retour utilisable de texte qui peut être inséré en tant qu'ils contiennent inutilisable "caractères" - je ne veux pas avoir un 'publication' dans mon fichier téléchargé, et j'ai besoin d'avoir de multiples formes de ciblage des objets spécifiques, il est donc important, je reçois le fichier et l'utilisation de Javascript de cette façon.
Comment dois-je obtenir le fichier de telle sorte que je puisse les utiliser du Javascript base64 des codeurs qui sont largement disponibles!?
Merci
Mise à jour - Départ pour le bounty, ici, ont besoin de la croix-prise en charge du navigateur!!!
Voici où j'en suis:
<input type="file" id="fileuploadform" />
<script type="text/javascript>
var uploadformid = 'fileuploadform';
var uploadform = document.getElementById(uploadformid);
/* method to fetch and encode specific file here based on different browsers */
</script>
Quelques problèmes avec la croix-prise en charge du navigateur:
var file = $j(fileUpload.toString()).attr('files')[0];
fileBody = file.getAsDataURL(); // only works in Firefox
Aussi, IE ne prend pas en charge:
var file = $j(fileUpload.toString()).attr('files')[0];
J'ai donc remplacer par:
var element = 'id';
var element = document.getElementById(id);
Pour IE Soutien.
Cela fonctionne dans Firefox, Chrome, Safari (mais ne pas coder correctement le fichier, ou, au moins, après qu'il a été posté le fichier ne vient pas de la droite)
var file = $j(fileUpload.toString()).attr('files')[0];
var encoded = Btoa(file);
Aussi,
file.readAsArrayBuffer()
Semble être uniquement pris en charge en HTML5?
Beaucoup de gens ont suggéré de: http://www.webtoolkit.info/javascript-base64.html
Mais cela ne les retours en cas d'erreur sur le UTF_8 méthode avant d'en base64 encode? (ou une chaîne vide)
var encoded = Base64.encode(file);