2015-12-05 93 views
0

我面临一个问题。我不能使用Angular.js和PHP将文件保存到本地文件夹。我在下面解释我的代码。文件无法上传到使用PHP和angular.js文件夹

<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); 
} 

这里我只提到file.I也纷纷上传文件夹,我的项目中folder.But我无法保存文件里面的PHP文件上传部分该文件夹。请帮我解决这个问题。

+0

打印您在productinfo.php文件productdata和更新的问题 –

+0

@saurabhkamble:Itried打印'$ _FILES [ '文件'] [ '名']; '但它没有返回任何东西。当尝试'$ _POST ['file'] ['name'];'它返回了我发送的文件名。 – subhra

回答

3
**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); 
+0

我对你的代码感到困惑?实际上'$ target_file'接受了什么?可以在我的代码中编辑你的答案吗? – subhra