2014-05-22 3 views
5

У меня проблема с загрузкой изображения в AngularJS. Я нашел этот вопрос здесь: Angularjs - File upload with phpAngularJS Загрузка изображения с использованием php

Как и в другом вопросе я стараюсь использовать https://github.com/danialfarid/angular-file-upload

Моя проблема заключается в том, что мой образ, который я пытаюсь загрузить не отправить в мой файл PHP.

Вот код, который я использую.

PlayerController.js

angular.module('lax').controller('PlayerController', function($scope, $http, $upload) { 

$scope.onFileSelect = function($files) { 
    $scope.message = ""; 
    for (var i = 0; i < $files.length; i++) { 
     var file = $files[i]; 
     console.log(file); 
     $scope.upload = $upload.upload({ 
      url: 'php/upload.php', 
      method: 'POST',    
      file: file 
     }).success(function(data, status, headers, config) { 
      $scope.message = data;     
     }).error(function(data, status) { 
      $scope.message = data; 
     }); 
    } 
}; 
}); 

HTML

<div ng-show="newplayer.functie == 'update'"> 
         <h3>Profile Pic</h3>       
         <div> 
          <input type="file" name="image" id="image" ng-file-select="onFileSelect($files)"> 
          <br/> 
          <span class="errorMsg">{{ message}}</span> 
         </div> 

        </div> 

upload.php

<?php 
    if(isset($_FILES['image'])){  
     $errors= array();   
     $file_name = $_FILES['image']['name']; 
     $file_size =$_FILES['image']['size']; 
     $file_tmp =$_FILES['image']['tmp_name']; 
     $file_type=$_FILES['image']['type']; 
     $file_ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION)); 
     $extensions = array("jpeg","jpg","png");   
     if(in_array($file_ext,$extensions)=== false){ 
      $errors[]="image extension not allowed, please choose a JPEG or PNG file."; 
     } 
     if($file_size > 2097152){ 
      $errors[]='File size cannot exceed 2 MB'; 
     }    
     if(empty($errors)==true){ 
      move_uploaded_file($file_tmp,"../../Img/PlayerAvatar/".$file_name); 
      echo $fname . " uploaded file: " . "images/" . $file_name; 
     }else{ 
      print_r($errors); 
     } 
    } 
    else{ 
     $errors= array(); 
     $errors[]="No image found"; 
     print_r($errors); 
} 
?> 

Так что "если (Исеть ($ _ FILES [ 'изображение']))" дает false в результате. Я новичок в stackoverflow и angularJS, так что извините за любые вопросы noob.

+0

Здравствуйте, вы можете предоставить мне пример/ссылка на угловой 2/4 для загрузки Muliple изображений на сервер , –

ответ

9

У меня была проблема в моем PHP. Проблема была с $ _FILES [ «изображение»] изображение должно было файл Это должно было быть:

<?php 
    if(isset($_FILES['file'])){  
    $errors= array();   
    $file_name = $_FILES['file']['name']; 
    $file_size =$_FILES['file']['size']; 
    $file_tmp =$_FILES['file']['tmp_name']; 
    $file_type=$_FILES['file']['type']; 
    $file_ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION)); 
    $extensions = array("jpeg","jpg","png");   
    if(in_array($file_ext,$extensions)=== false){ 
     $errors[]="image extension not allowed, please choose a JPEG or PNG file."; 
    } 
    if($file_size > 2097152){ 
     $errors[]='File size cannot exceed 2 MB'; 
    }    
    if(empty($errors)==true){ 
     move_uploaded_file($file_tmp,"PlayerAvatar/".$file_name); 
     echo " uploaded file: " . "images/" . $file_name; 
    }else{ 
     print_r($errors); 
    } 
} 
else{ 
    $errors= array(); 
    $errors[]="No image found"; 
    print_r($errors); 
} 
?> 
+1

в следующий раз, просто попробуйте отладить с var_dump ($ _FILES) раньше, если условия – MouradK

+0

вы можете разместить весь свой html? – Zypps987

Смежные вопросы