Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ionic2将图像文件从照相机或图库上载到node.js rest服务_Javascript_File Upload_Ionic Framework_Angular_Ionic2 - Fatal编程技术网

Javascript 从ionic2将图像文件从照相机或图库上载到node.js rest服务

Javascript 从ionic2将图像文件从照相机或图库上载到node.js rest服务,javascript,file-upload,ionic-framework,angular,ionic2,Javascript,File Upload,Ionic Framework,Angular,Ionic2,我一直在尝试从我的Ionic 2应用程序上传一个图像到node.js rest服务(使用multer实现) 我调用下面的upload pic方法,将图像本地文件路径和一个附加参数传递给节点服务 我可以在chrome开发工具中看到文件数据,但onreadystatechange似乎从未被触发 我使用的是离子2 beta 2.0.0.17。非常感谢您的帮助 uploadPic(personid,imageData) { var fileStream = null; var self

我一直在尝试从我的Ionic 2应用程序上传一个图像到node.js rest服务(使用multer实现)

我调用下面的upload pic方法,将图像本地文件路径和一个附加参数传递给节点服务

我可以在chrome开发工具中看到文件数据,但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)
            });
    });