tizen上传文件到服务器

tizen upload file to a server

我正在开发类似 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() 函数转换回文本值。此外,我使用的是纯文本,因此您可能需要稍微调整一下。