2014-11-11 2 views
2

Я пытаюсь загрузить файл для чтения на php. Но я не могу передать файл на php.Файл загрузки AngularJS не работает

Мой код был,

HTML код:

<label>Import</label> 
<div class="form-group"> 
     <input type="file" ng-file-select="uploadFile($files)" /> 
</div> 

app.js:

var app = angular.module('myApp','ngRoute','myApp.bulk','ngSanitize','angularFileUpload']); 

bulk.js

var bulkApp = angular.module('myApp.bulk', ['ngResource','ngRoute','ngSanitize']); 


    bulkApp.factory('FileUploadService', function ($http) { 
    var api = { 
    uploadFile: function (file, callback) { 
     alert(file.name); 
     $http.uploadFile({ 
     url: 'xxx/services.php?upload=1', 
     file: file 
     }).progress(function(event) { 
     console.log('percent: ' + parseInt(100.0 * event.loaded/event.total)); 
     }).error(function (data, status, headers, config) { 
     console.error('Error uploading file') 
     callback(status); 
     }).then(function(data, status, headers, config) { 
     callback(null); 
     }); 
    } 
    } 
    return api; 
}); 

bulkApp.controller('bulkController', function($scope,$rootScope,$filter,FileUploadService) { 

    var service = FileUploadService; 
    /** 
    * Handler to upload a new file to the server. 
    */ 
    $scope.uploadFile = function ($files) { 
     var $file = $files[0];  
     service.uploadFile($file, function (error) { 
     if (error) { 
      alert('There was a problem uploading the file.'); 
     } 
     // handle successfully-uploaded file 
     }) 
    } 
}); 

services.php

if(isset($_REQUEST) && isset($_REQUEST['upload'])) 
{    
    var_dump($_FILES); 
    /* read functionality over here */ 
} 

Я передала этот link

я получаю TypeError: $ http.uploadFile не ошибка функции.

помогите пожалуйста. заранее спасибо .

ответ

2

использование услуг $ загрузки вместо $ HTTP:

bulkApp.factory('FileUploadService', function ($upload) { 
    var api = { 
    uploadFile: function (file, callback) {  
     $upload.upload({ 
     url: 'xxx/services.php?upload=1', 
     file: file 
     }).progress(function(event) { 
     console.log('percent: ' + parseInt(100.0 * event.loaded/event.total)); 
     }).error(function (data, status, headers, config) { 
     console.error('Error uploading file') 
     callback(status); 
     }).then(function(data, status, headers, config) { 
     callback(null); 
     }); 
    } 
    } 
    return api; 
}); 
+0

Большое спасибо .. это то, что я ожидал .. прекрасно работает ... –

+0

Можете ли вы сказать мне, как он должен подать на кнопку нажать не на file select ... @MajoB –

+0

@ stumps_k2001 вы можете сохранить свой $ файл в файле $ scope.file = $, а затем вызвать service.uploadFile ($ scope.file на ng-click –

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