Erreur:Échec de l'exécution de 'atob" sur "Fenêtre": La chaîne à être décodé n'est pas codé correctement
C'est mon code Javascript
function upload(){
var byteCharacters = atob($scope.image1.compressed.dataURL.replace(/^data:image\(png|jpg);base64,/,''));
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var blob = new Blob([ byteArray ], {
type : undefined
});
C'est mon HTML
<div class="form-group text-16px" style="margin-top: 20px !important;">
<label>Choose Material Photo : </label>
<div>
<input id="materialImage" type="file" accept="image/*" image="image1" resize-max-height="800" resize-max-width="800" resize-quality="0.7" resize-type="image/jpg" file-model="file" name="materialImage" onChange="checkFile()" ng-image-compress/>
<div id="choose-image-compresser">
<div image="image1" result-image="myCompressedImage"></div>
</div>
<img ng-src="{{image1.compressed.dataURL}}" />
<span id="image-size-error" style="color:red;" hidden=""><small>Image size is too large</small></span>
</div>
</div>
J'obtiens l'erreur
D'erreur: Échec de l'exécution de 'atob" sur "Fenêtre": La chaîne à être décodé
n'est pas codé correctement
dans mon contrôleur var byteCharacters = atob($champ d'application.image1.compressé.dataURL.replace(/^de données:image\/png|jpg);base64,/,")); var byteNumbers = new Array(byteCharacters.la longueur);
mon code html est <input id="materialImage" type="file" accepter="image/*" image="image1" redimensionner-max-height="800" redimensionner-max-width="800" redimensionner qualité="0.7" redimensionner-type="image/jpg" fichier-modèle="file" name="materialImage" onChange="checkFile()" ng-image-compresser/> <div id="choisir l'image de compresser"> <div de l'image="image1" image="myCompressedImage"></div> </div>
Une double question, voir ici stackoverflow.com/questions/22578530/...
veuillez vérifier mon code, je suis en utilisant la compression des images dans mon contrôleur
Veuillez vérifier mon code et comprendre mon problème. merci de ne pas me donner un négatif de marquage. Veuillez vérifier mon code. j'ai passé 4 jours. et je ne suis pas en mesure de trouver des solutions.
mon code html est <input id="materialImage" type="file" accepter="image/*" image="image1" redimensionner-max-height="800" redimensionner-max-width="800" redimensionner qualité="0.7" redimensionner-type="image/jpg" fichier-modèle="file" name="materialImage" onChange="checkFile()" ng-image-compresser/> <div id="choisir l'image de compresser"> <div de l'image="image1" image="myCompressedImage"></div> </div>
Une double question, voir ici stackoverflow.com/questions/22578530/...
veuillez vérifier mon code, je suis en utilisant la compression des images dans mon contrôleur
Veuillez vérifier mon code et comprendre mon problème. merci de ne pas me donner un négatif de marquage. Veuillez vérifier mon code. j'ai passé 4 jours. et je ne suis pas en mesure de trouver des solutions.
OriginalL'auteur Ved Prakash | 2016-09-14
Vous devez vous connecter pour publier un commentaire.
J'ai obtenu mon problème. Il devrait être utile pour un autre utilisateur pour enregistrer l'image et de compresser l'image à l'aide de javascript(AnguarJs).
Je suis coule ce lien pour compresser l'image Github
https://github.com/oukan/angular-image-compress
OriginalL'auteur Ved Prakash
Après vérification de votre code, il semble que vous avez des caractères qui ne sont pas probablement pris en charge.
Vérifier la capture d'écran
Si cela ne fonctionne pas, assurez-vous que le nom du fichier que vous téléchargez est codée à ce que votre base de données ou à la prise en charge des paramètres.
Voici le code sans ces caractères:
var byteCharacters = atob($champ d'application.image1.compressé.dataURL.replace(/^de données:image\/png|jpg);base64,/,")); var byteNumbers = new Array(byteCharacters.length); for (var i = 0; i < byteCharacters.longueur; i++) { byteNumbers[i] = byteCharacters .charCodeAt(i); } var byteArray = new Uint8Array(byteNumbers); { type : undefined });
Vous semblez avoir un problème d'encodage. Après j'ai copié votre j'ai remarqué que la partie n'est pas Codé en UTF-8. Qui pourrait en être la raison. Cette partie, pour être précis " /^de données:image\/png|jpg);base64,/", " j'ai supprimé ces caractères invisibles, donc ça devrait être bon. C'est le nouveau code:
var byteCharacters = atob($scope.image1.compressed.dataURL.replace(/^data:image\/(png|jpg);base64,/,''));
#Earl :- le Code ne fonctionne pas. J'ai toujours le même problème
var byteCharacters = atob(données images.replace(/^de données:image\/png|jpg|jpeg;base64,/, ")); ***j'ai ajouté jpeg tout mon problème est corrigé.
OriginalL'auteur