将图像文件从相机或库上传到node.js来自ionic2的休息服务

时间:2016-05-24 09:45:13

标签: javascript file-upload ionic-framework angular ionic2

我一直试图将图像上传到我的Ionic 2应用程序中的node.js休息服务(使用multer实现)。

我正在调用下面的上传pic方法,传递图像本地文件路径以及我传递给节点服务的附加参数。

我能够在chrome dev工具中看到文件数据,但onreadystatechange似乎永远不会被触发。

我正在使用离子2 beta 2.0.0.17。任何帮助非常感谢。

uploadPic(personid,imageData) {
    var fileStream = null;
    var self = this.resource;
    return new Promise((resolve, reject) => {
        window.resolveLocalFileSystemURL(imageData,
            (fileDetail) => {
                fileDetail.file(function(file) {
                    var reader = new FileReader();
                    reader.onloadend = function(e) {
                    }

                    fileStream = reader.result;
                    var formdata=new FormData();
                    formdata.append("upload", fileStream, "help.png");
                    formdata.append('filename', personid + '.png');
                    formdata.append('personId', personid);
                    let xhr:XMLHttpRequest = new XMLHttpRequest();
                    xhr.open('POST', self.api_url + self.method_persons + '/photo', true);

                    xhr.onreadystatechange = () => {
                        if (xhr.readyState === 4) {
                            if (xhr.status === 200) {
                                resolve(JSON.parse(xhr.response));
                            } else {
                                reject(xhr.response);
                            }
                        }
                    };

                    xhr.setRequestHeader('hpApp-Token', self.entity_token);
                    xhr.setRequestHeader('Authorization','Bearer '+ self.usr_token);
                    xhr.send(formdata);
                });
            },
            (err)=> {
                console.log("read error",err)
            });
    });

0 个答案:

没有答案