Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 使用角度控制器在单个post请求中发送文件和一些字符串值_Javascript_Angularjs_Controller_Angular Directive - Fatal编程技术网

Javascript 使用角度控制器在单个post请求中发送文件和一些字符串值

Javascript 使用角度控制器在单个post请求中发送文件和一些字符串值,javascript,angularjs,controller,angular-directive,Javascript,Angularjs,Controller,Angular Directive,我试图上传一个图像到服务器,同时我通过$upload post方法发送一个字符串值。介绍了如何通过$upload方法处理请求的文件。我不知道如何访问通过post请求发送的字符串数据。这是我的控制器代码 $scope.string1="abcd"; createFile = $scope.files.slice(0); console.log(createFile); console.log("upload function

我试图上传一个图像到服务器,同时我通过$upload post方法发送一个字符串值。介绍了如何通过$upload方法处理请求的文件。我不知道如何访问通过post请求发送的字符串数据。这是我的控制器代码

 $scope.string1="abcd";
            createFile = $scope.files.slice(0);
            console.log(createFile);
            console.log("upload function");
            if (createFile) { // console.log(file.name);
                $scope.upload = $upload.upload({
                    url: '/uploadResortsImage', //upload.php script, node.js route, or servlet url
                    method: 'POST',
                    data: {
                        myObj: $scope.myModelObj,
                        $scope.dataone:$scope.string1,
                    },
                    file: createFile, // or list of files ($files) for html5 only
                    //  fileName: this.name +'.pdf', //or ['1.jpg', '2.jpg', ...] // to modify the name of the file(s)
                })
form.parse(req, function (err, fields, files) {
var data_received= fields.myObjB;
}
我的应用程序堆栈是meanjs,下面是我的服务器代码

exports.upload = function (req, res) {
    console.log("upload function");
    console.log(req);
    var filename = '',
        target_path = '';
    console.log(req.files);
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log(files.file);
        var tmp_path = files.file.path;
        var tmp_path_string = String(tmp_path);
        console.log(tmp_path_string);
        filename = files.file.name;
        var dir = "./public/uploads";
        if (!fs.existsSync(dir)) {
            fs.mkdirSync(dir);
        }
        var dir1 = dir + '/' + resortid;
        if (!fs.existsSync(dir1)) {
            fs.mkdirSync(dir1);
        }
        var dest_path = dir1 + "/";
        target_path = dest_path + filename;
        console.log(dest_path);
        console.log(filename);
        console.log(target_path);
        var target_path_string = String(target_path);
        fs.rename(tmp_path_string, target_path_string, function (err) {
            if (err) {
                throw err;
                console.log("fail");
                console.log(err);
            } else {
                console.log("successful");
                done(err, resort);
            }
        });
    });
}
form.parse(req, function (err, fields, files) {
var data_received= fields.myObjB;
}

我想这就是你需要的

                data: {
                    myObj: $scope.myModelObj,
                    myObjB: $scope.string1,
                },
form.parse(req, function (err, fields, files) {
var data_received= fields.myObjB;
}

然后,在服务器端,您只需访问myObjB属性,或者在传入表单值集合中决定调用它的任何内容,具体取决于您使用的服务器端。在数据对象中使用$scope.dataone作为属性名称没有意义,因为这是AngularJS代码中其他地方的一个范围属性,请坚持使用简单的属性名称。

我在节点应用程序中使用了Formible plug。我的代码是这样的,我可以访问服务器端的send数据对象

form.parse(req, function (err, fields, files) {
var data_received= fields.myObjB;
}

谢谢。

我正在服务器端使用nodejs。这是我的代码谢谢。我已经添加了发球代码。让我确认我正确理解了如何访问myObjB。在服务器代码的form.parse()方法中添加名为string1的参数是否正确,或者是否有其他方法访问它。如果在console.log(req)上的服务器端代码中只有一个断点,那么调试器中需要什么样的参数?我正试图在console中记录req.body.data,但它未定义。你能回答我更多的信息吗。谢谢,我的意思是,如果您在console.log(req)中中断,调试程序中的req看起来是什么样子?
form.parse(req, function (err, fields, files) {
var data_received= fields.myObjB;
}