我正在开发一个像shazam这样的应用程序;我设法录制,但是当我使用 blob 上传音频文件时,服务器端的数据不一样(我无法播放音频文件)。
tizen.filesystem.resolve(
'file:///opt/usr/media/test.aac',
function(dir) {
documentsDir = dir;
if (dir != null) {
dir.openStream(
"rw",
function(fs) {
var bt = fs.readBytes(dir.fileSize);
var blob = new Blob(bt, {
type: 'audio/mpeg'
});
var formData = new FormData();
formData.append("__VIEWSTATE", "jjj=");
formData.append("FileUploadControl", blob, "mmm.aac");
formData.append("UploadButton", "Upload");
client.open("post", "/page", true);
client.send(formData);
fs.close();
},
function(e) {
console.log("Error " + e.message);
}
);
}
},
function(e) {
console.log("Error" + e.message);
}, "rw"
);
最佳答案
替换
var blob = new Blob(bt, {type: 'audio/mpeg'});
与
var array = $.map(bt, function(value, index) { return [value + "\n"]; });
var blob = new Blob(array, {type : 'audio/mpeg'});
当然,您可以根据您的需要保留行结尾 "\n"
。就我而言,我迭代了文件中的每一行,并使用 PHP 的 chr()
函数转换回文本值。此外,我正在使用纯文本,因此您可能需要进行一些调整。
关于javascript - tizen上传文件到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30313110/