0

appjs を使用して JPG ファイルを保存しようとしています。使用するコードは、こちらのサンプルからのものです。ご覧のとおり、単純にfileContentを nodejs のwriteFile()に渡しました。動作しますが、結果の JPG 画像が開きません (IrfanView に「JPEG ファイルではありません: 0xc3 0xbf で始まる」というエラーが表示されます。

ドラッグアンドドロップと保存に使用している完全なコードを次に示します。かなり簡単です:-

addEventListener('app-ready', function(e){
  var fs   = require('fs');

var readEnd = function(progressEvent) {
    console.log('readEnd',progressEvent,this);
    var fileReader = this;
    var fileContent = fileReader.result;
    var fileName = fileReader.file.name;
    // Note you can not retreive file path, for security reasons. 
    // But you are not supposed to need it, you already have the content ;)
    fs.writeFile("test.jpg", fileContent, function (err) {
      if (err) throw err;
      console.log('It\'s saved!');
    });
    console.log('readEnd:');
}


var readFile = function(file) {
    var reader = new FileReader();
    reader.file = file; // We need it later (filename)
    reader.addEventListener('loadend', readEnd, false);
    reader.readAsBinaryString(file);
}

var drop = function(event) {
    event.preventDefault();
    var dt = event.dataTransfer;
    var files = dt.files;
    for (var i = 0; i<files.length; i++) {
        var file = files[i];
        readFile(file);
    }
}

window.addEventListener("drop", drop);
  window.dispatchEvent(new Event('app-done'));
});

元の JPG と結果の JPG を含む ZIP ファイルは次のとおりです: http://ge.tt/4iYy9Kk/v/0?c

4

0 に答える 0