En realidad, en uno de mis proyectos, necesito leer imágenes del servidor remoto y almacenarlas en la base de datos local como binario para utilizarlas en una aplicación posterior. Entonces, ¿hay alguna manera simple de que pueda hacer esto? es solo una cosa en la que me quedé y es importante completar la aplicación. por favor ayuda !! Gracias por adelantado.es posible leer la imagen del servidor remoto usando en modo binario usando javascript o phonegap?
es posible leer la imagen del servidor remoto usando en modo binario usando javascript o phonegap?
Respuesta
Es bastante sencillo en el entorno HTML5/ES5 (prácticamente todo excepto Internet Explorer 9-);
Primero debe descargar el contenido binario de la imagen en un arraybuffer, y luego convertirlo a base64 datauri, que en realidad es una cadena. Esto se puede almacenar en los navegadores localStorage, indexedDb o webSQL, o incluso en una cookie (aunque no muy eficiente); Más tarde, acaba de establecer este datauri como la imagen src para mostrar.
<script>
function showImage(imgAddress) {
var img = document.createElement("img");
document.body.appendChild(img);
getImageAsBase64(imgAddress, function (base64data) { img.src = base64data; });
};
function getImageAsBase64(imgAddress, onready) {
//get from online or from whatever string store
var req = new XMLHttpRequest();
req.open("GET", imgAddress, true);
req.responseType = 'arraybuffer'; //this won't work with sync requests in FF
req.onload = function() { onready(arrayBufferToDataUri(req.response)); };
req.send(null);
};
function arrayBufferToDataUri(arrayBuffer) {
var base64 = '',
encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/',
bytes = new Uint8Array(arrayBuffer), byteLength = bytes.byteLength,
byteRemainder = byteLength % 3, mainLength = byteLength - byteRemainder,
a, b, c, d, chunk;
for (var i = 0; i < mainLength; i = i + 3) {
chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
a = (chunk & 16515072) >> 18; b = (chunk & 258048) >> 12;
c = (chunk & 4032) >> 6; d = chunk & 63;
base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];
}
if (byteRemainder == 1) {
chunk = bytes[mainLength];
a = (chunk & 252) >> 2;
b = (chunk & 3) << 4;
base64 += encodings[a] + encodings[b] + '==';
} else if (byteRemainder == 2) {
chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];
a = (chunk & 16128) >> 8;
b = (chunk & 1008) >> 4;
c = (chunk & 15) << 2;
base64 += encodings[a] + encodings[b] + encodings[c] + '=';
}
return "data:image/jpeg;base64," + base64;
}
</script>
Tomé prestado la rutina de conversión de base 64 de este poste de la bella: http://jsperf.com/encoding-xhr-image-data/5
¿Te ayudó? Marcar como respuesta o proporcionar más información. –
Gracias por la sugerencia. Tu código funciona perfectamente. Lo envolví en un módulo para usar en iMacros For Firefox [https://github.com/nisaacson/download-file-base64](https://github.com/nisaacson/download-file-base64) – Noah
- 1. es posible mostrar la imagen animada del gif en el emulador Usando phoneGap
- 2. usando Javascript para cargar un archivo remoto en mi servidor a un servidor de terceros
- 3. Cargar un archivo binario usando JavaScript puro
- 4. Iluminar una imagen usando estilos o Javascript
- 5. Llamando al teléfono sms api usando phonegap usando javascript
- 6. ¿Es posible enviar SMS desde la aplicación HTML/Javascript de phonegap usando Phone SMS API?
- 7. Copie la imagen del servidor remoto a través de HTTP
- 8. ¿Cargar imagen local en el navegador usando JavaScript?
- 9. ¿Es posible hacer FTP en modo "Activo" usando FtpWebRequest?
- 10. Enviar archivo binario al servidor usando la publicación con Qt
- 11. Leer desde archivo de texto en el servidor usando jquery
- 12. Leer ID de sesión usando Javascript
- 13. Cómo leer video remoto en Amazon S3 usando ffmpeg
- 14. ¿Es posible leer/escribir bits de un archivo usando JAVA?
- 15. ¿Es posible leer archivos FTP sin escribirlos usando Python?
- 16. ¿Puede Webkit JavaScript PUT o POST una imagen REST-style como binario puro?
- 17. ¿Es posible crear aplicaciones usando Javascript en plataformas Linux?
- 18. Acceder a archivos usando Phonegap
- 19. JavaScript/HTML resaltado/depuración en Eclipse usando PhoneGap
- 20. Demasiados hilos en Blackberry usando Phonegap/WebWorks
- 21. Ejecutando emacs en modo gráfico en el servidor remoto
- 22. Usando Ajax, ¿es mejor generar marcado adicional en el servidor o en el lado del cliente?
- 23. Alertas personalizadas de JavaScript en iOS usando PhoneGap HTML
- 24. Convertir texto en imagen usando javascript
- 25. Buscar teclado en el iPhone usando PhoneGap
- 26. Recortar/cortar mediante programación la imagen usando Javascript
- 27. ¿Es posible programar en binario?
- 28. ¿Cómo tirar del control remoto usando dulwich?
- 29. REMOTO Depurando PHP usando Eclipse
- 30. ¿Es posible seleccionar datos del servidor sql usando la posición ordinal de columna
posible duplicado de [Cómo mostrar imágenes en div que almacenar en el DB] (http://stackoverflow.com/questions/2801042/ how-to-show-images-in-div-that-stored-in-db) –
@Diodeus no, esta es una pregunta de JavaScript y es para Java. –
@Shailesh Thanki ¿podría aceptar esto como respuesta? –