2014-05-22 13 views
5

Ho riscontrato un problema con il caricamento di un'immagine in AngularJS. Ho trovato questa domanda qui: Angularjs - File upload with phpCaricamento immagine angolareJS utilizzando php

Come in altra domanda cerco di usare https://github.com/danialfarid/angular-file-upload

mio problema è che la mia immagine che io cerco di caricare non è inviare al mio file php.

Ecco il codice che utilizzo.

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

Così il "if (isset ($ _ FILES [ 'immagine']))" dà falso di conseguenza. Sono nuovo di stackoverflow e angularJS, quindi mi dispiace per eventuali domande noob.

+0

Ciao, mi puoi fornire un esempio di/link per angolare 2/4 per il caricamento delle immagini muliple al server . –

risposta

9

Ho avuto un problema nel mio PHP. Il problema era con il $ _FILES [ 'immagine'] immagine avrebbe dovuto essere di file Avrebbe dovuto essere:

<?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

la prossima volta, provate a eseguire il debug con un var_dump ($ _FILES) prima se le condizioni – MouradK

+0

potete postare l'interezza del vostro html? – Zypps987