Exif.jsを使用して、ローカル ファイルから JPEG EXIF タグを読み取りたいと思います。ただし、javascript lib はXMLHttpRequest
、JPG ファイルを次のように読み取るために使用しますBinaryFile
。
function getImageData(oImg, fncCallback)
{
BinaryAjax(
oImg.src,
function(oHTTP) {
var oEXIF = findEXIFinJPEG(oHTTP.binaryResponse);
oImg.exifdata = oEXIF || {};
if (fncCallback) fncCallback();
}
)
}
を使用する と、 を使用して読み取ることができる<input type="file">
HTML5 オブジェクトを取得できますが、これを に変換する方法がわかりません。File
FileReader
BinaryFile
_initHTML5FileReader = function() {
var chooseFile;
chooseFile = document.getElementById("html5-get-file");
chooseFile.onchange = function(e) {
var file;
file = e.currentTarget.files[0];
var reader;
reader = new FileReader();
reader.onloadend = function(ev) {
var dataUrl = ev.target.result;
// How do I change this to a BinaryFile???
};
reader.readAsDataURL(file);
return false;
};
};
しかし、私は からページを提供する AppGyver Steroids (PhoneGap) も使用しており、http://localhost/index.html
Exif.js を使用しようとすると、次の CORS エラーが発生します。
XMLHttpRequest cannot load data:image/jpeg;base64,/9j/4X2cRXhpZgAASUkqAAgAAAAOAA8BAgAKAAAAtgAAABABAgAI…N6gn14dm6BmJyMdYaMhX16hI+HgIWLj5aWkJOaiHF7hoV+dnBwc3Jzbm14hGlZcIaWlXFEU3OB. Received an invalid response. Origin 'http://localhost:4000' is therefore not allowed access.
CORS エラーなしでローカル ファイル オブジェクトを提供するように XmlHttpRequest を構成する方法はありますか?