2015-03-03 17 views
1

所以我用angular-file-upload使用發送額外的值到PHP腳本角文件上傳

爲此,我需要以下控制器:

app.controller('FileUploadCtrl', ['$scope', 'FileUploader', function($scope, FileUploader) { 
var uploader = $scope.uploader = new FileUploader({ 
    url: 'js/controllers/upload.php', 
}); 

// FILTERS 

uploader.filters.push({ 
    name: 'customFilter', 
    fn: function(item /*{File|FileLikeObject}*/, options) { 
     return this.queue.length < 10; 
    } 
}); 

// CALLBACKS 

uploader.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/, filter, options) { 
    console.info('onWhenAddingFileFailed', item, filter, options); 
}; 
uploader.onAfterAddingFile = function(fileItem) { 
    console.info('onAfterAddingFile', fileItem); 
}; 
uploader.onAfterAddingAll = function(addedFileItems) { 
    console.info('onAfterAddingAll', addedFileItems); 
}; 
uploader.onBeforeUploadItem = function(item) { 
    item.file.test = "gg"; 
    console.info('onBeforeUploadItem', item); 
}; 
uploader.onProgressItem = function(fileItem, progress) { 
    console.info('onProgressItem', fileItem, progress); 
}; 
uploader.onProgressAll = function(progress) { 
    console.info('onProgressAll', progress); 
}; 
uploader.onSuccessItem = function(fileItem, response, status, headers) { 
    console.info('onSuccessItem', fileItem, response, status, headers); 
}; 
uploader.onErrorItem = function(fileItem, response, status, headers) { 
    console.info('onErrorItem', fileItem, response, status, headers); 
}; 
uploader.onCancelItem = function(fileItem, response, status, headers) { 
    console.info('onCancelItem', fileItem, response, status, headers); 
}; 
uploader.onCompleteItem = function(fileItem, response, status, headers) { 
    console.info('onCompleteItem', fileItem, response, status, headers); 
}; 
uploader.onCompleteAll = function() { 
    console.info('onCompleteAll'); 
}; 

console.info('uploader', uploader); 
}]); 

和下面的PHP腳本:

<?php 

if (!empty($_FILES)) { 

    $tempPath = $_FILES[ 'file' ][ 'tmp_name' ]; 
    $uploadPath = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . $_FILES[ 'file' ][ 'name' ]; 

    move_uploaded_file($tempPath, $uploadPath); 

    $answer = array('answer' => 'File transfer completed'); 
    $json = json_encode($answer); 

    echo $json; 

} else { 

    echo 'No files'; 

} 

?> 

現在,我需要上傳一些文件,我需要指定他們需要採取的路徑(這取決於我的$sessionStorage中的值)

所以我的問題是如何發送文件的值到PHP腳本?

回答

1

可以使用formData屬性發送值PHPscript:

app.controller('FileUploadCtrl', ['$scope', 'FileUploader', function($scope, FileUploader) { 
var uploader = $scope.uploader = new FileUploader({ 
    url: 'js/controllers/upload.php', 
    formData: [{ 
      param1: 'value1', 
      param2: 'value2', 
      param3: 'value3' 
      }] 
}); 

formData屬性是一個數組,將您的數據發送到$_REQUEST在PHP。

所以,你可以使用

$myValue1 = $_REQUEST['param1']; 
$myValue2 = $_REQUEST['param2']; 
$myValue3 = $_REQUEST['param3']; 

任何你所需要的。

相關問題