从AngularJs发送文件和其他POST参数作为AJAX

时间:2017-01-28 00:21:31

标签: angularjs post

我有一个现有的POST API,因此:

   var data = {
                userName:  $scope.loginData.userName,
                password : forge_sha256($scope.loginData.password),
                XDEBUG_SESSION_START: 'ECLIPSE_DBG'
            };

   var url = HOST + 'api/login.php';

   $http.post(url, data)
    .success(function(data, status, headers, config)
     {

我想上传一个文件,就像this Plunk

中所做的那样
this.uploadFileToUrl = function(file, uploadUrl){
    var fd = new FormData();
    fd.append('file', file);
    $http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: {'Content-Type': undefined}
    })
    .success(function(){
    })
    .error(function(){
    });

我认为他们的意思是$scope.uploadFileToUrl

我需要发送一些参数和文件,以验证用户是否有权上传和描述文件。

我的问题是,如何指定我需要发送的文件和其他一些POST参数?

我想我可以在标题中发送参数,但这似乎是错误的。我还在服务器端编写PHP代码。

1 个答案:

答案 0 :(得分:2)

我会将参数放在表单数据中。 您可以将它们与

之类的文件一起附加
var fd = new FormData();
fd.append("param1", param1val);
fd.append('param2', param2val);
fd.append('file', file);

我相信这可以在服务器端的PHP中被视为多部分形式。