2017-05-18 4 views
0

Ich versuche, eine Datei von meinem Client an den Server zu senden und in einem Verzeichnis zu schreiben.Was verursacht den unbekannten Kodierungsfehler in meinem writeFile?

kann ich die Datei schicken, aber ich kann es nicht schreiben, weil dieser Fehler:

I20170518-07:09:54.810(2)? Exception while invoking method 'file-upload' Error: Unknown encoding: 
I20170518-07:09:54.810(2)? hi i am the content of the file 
I20170518-07:09:54.810(2)?  at assertEncoding (fs.js:88:11) 
I20170518-07:09:54.811(2)?  at Object.fs.writeFileSync (fs.js:1153:3) 
I20170518-07:09:54.811(2)?  at [object Object].fileUpload (server/helpers_docker.js:349:10) 
I20170518-07:09:54.811(2)?  at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1711:12) 
I20170518-07:09:54.811(2)?  at packages/ddp-server/livedata_server.js:711:19 
I20170518-07:09:54.811(2)?  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
I20170518-07:09:54.811(2)?  at packages/ddp-server/livedata_server.js:709:40 
I20170518-07:09:54.812(2)?  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
I20170518-07:09:54.812(2)?  at packages/ddp-server/livedata_server.js:707:46 
I20170518-07:09:54.812(2)?  at Session.method (packages/ddp-server/livedata_server.js:681:23) 
I20170518-07:09:54.812(2)?  at packages/ddp-server/livedata_server.js:551:43 

So verstehe ich, dass die Codierung unbekannt ist, aber ich es angegeben.

Hier ist es der Kunde:

'change .file-upload-input': function(event, template){ 
    var func = this; 
    var file = event.currentTarget.files[0]; 
    var reader = new FileReader(); 
    reader.onload = function(fileLoadEvent) { 
     Meteor.call('file-upload', file.name, reader.result); 
     console.log(file); 
    }; 
    reader.readAsBinaryString(file); 
}, 

Hier ist es der Server (wo ich die Codierung angegeben):

'file-upload': function (fileInfo, fileData) { 
     fs.writeFileSync(process.env.HOME + '/compose/area/',fileInfo, fileData,'utf8'); 
} 

Jede Hilfe wird

Antwort

1

Nach docs, geschätzt werden writeFileSync Unterschrift ist fs.writeFileSync(file, data[, options]). So sollten Sie Ihren Code wie ändern:

var data = composeSomehow(fileInfo, fileData); 
fs.writeFileSync(process.env.HOME + '/compose/area/', data, 'utf8'); 

Hier composeSomehow sollten alle Daten Ihrer Notwendigkeit miteinander zu verknüpfen, und das Rück einem der data <string> | <Buffer> | <Uint8Array>

+0

Oh jetzt verstehe ich, danke für die Hilfe! – Jerome

Verwandte Themen