使用PHP和angular.js

时间:2015-12-05 03:47:59

标签: javascript php angularjs

我遇到了一个问题。我无法使用Angular.js和PHP将文件保存到本地文件夹。我正在解释下面的代码。

<div class="input-group bmargindiv1 col-md-12">
    <span class="input-group-addon ndrftextwidth text-right" style="width:180px">Upload Image :</span>
    <input type="file"
           class="filestyle form-control"
           data-size="lg"
           name="uploadme"
           id="bannerimage"
           ngf-select
           ng-model="file"
           ngf-pattern="'image/*'"
           accept="image/*"
           ngf-max-size="20MB"
           ngf-min-height="100"
           ngf-resize="{width: 100, height: 100}"
           custom-on-change="uploadFile"
           required="required">
</div>

上面的代码说明我的文件输入字段。控制器代码如下所示。

var today = $filter('date')(new Date(), 'yyyy-MM-dd HH:mm:ss');
var newpath = today + "_" + $scope.file.name;
var arrFile = {'name': newpath, 'size': $scope.file.size, 'type': $scope.file.type};
var productdata = $.param({
    'op': 'add',
    'catagory_id': $scope.catagory_name.value,
    'product_name': $scope.product_name,
    'status': $scope.product_status,
    'ucp': $scope.unit_cost_price,
    'usp': $scope.unit_sale_price,
    'quantity': $scope.quantity,
    'specification': $scope.specification,
    'discount': $scope.discount,
    'image': newpath,
    'file': arrFile
});
$http({
    method: 'POST',
    url: "php/productInfo.php",
    data: productdata,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(function successCallback(response) {
}, function errorCallback(response) {
});

这里我还有其他表格数据和文件。

productInfo.php:

if ($_REQUEST["op"]=="add") {
    $name     = $_FILES['file']['name'];
    $tmpName  = $_FILES['file']['tmp_name'];
    move_uploaded_file($tmpName,'upload/'.$name);
}

这里我只提到了文件上传部分php文件。我还在我的项目文件夹中上传文件夹。但是我无法将文件保存在该文件夹中。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

 **IT WILL WORK FOR YOU**  


<form  role="form">  
div class='form-group'>
              <label class='control-label'>Image</label>
             <input class='form-control' type="file" name="mfile" file-model="getting.image" accept="image/*" resize-max-height="300" resize-max-width="250" resize-quality="0.7" required > 
              <span ng-show="imagerequired" class="help-block">{{imagerequired}}</span>  
</form>

<强>服务: -

app.service('multipartForm', ['$http', function($http,$scope,usSpinnerService){
this.post = function(uploadUrl, data){
    var fd = new FormData();
    for(var key in data)
        fd.append(key, data[key]);
    $http.post(uploadUrl, fd, {
        transformRequest: angular.indentity,
        headers: { 'Content-Type': undefined }
    }).success(function(data){

        if(data.RESPONSE_STATUS == "1"){
           // this.responseMessage = "Question added successfully";
          alert("Mantar uploaded successfully...");
            window.location.reload();


            }
            else { 
                alert("Error in Upload Mantra"); 
                //$scope.responseMessage = "Error occur while adding question";

            }
    });
}
this.success = function()
{
    alert("success");
    var success = true;
}
   }]);

<强>指令

app.directive('fileModel', ['$parse', function($parse){
return {
    restrict: 'A',
    link: function(scope, element, attrs){
        var model = $parse(attrs.fileModel);
        var modelSetter = model.assign;

        element.bind('change', function(){
            scope.$apply(function(){
                modelSetter(scope, element[0].files[0]);
            })
        })
    }
}
 }]);

控制器:

var uploadUrl = 'upload.php';
        multipartForm.post(uploadUrl, $scope.getting);

php:

 $target_dir = "uploads/".$_FILES['file']['name'];
        move_uploaded_file($_FILES["image"]["tmp_name"], $target_dir);