采用了棱角分明文件上传发送额外的数值PHP脚本 [英] sending additional values to PHP script using angular-file-upload

查看:288
本文介绍了采用了棱角分明文件上传发送额外的数值PHP脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我使用角文件上传

有关这一点,我需要以下控制器:

  app.controller('FileUploadCtrl',['$范围,FileUploader',函数($范围,FileUploader){
VAR上传= $ scope.uploader =新FileUploader({
    网址:'JS /控制器/ upload.php的,
});//过滤器uploader.filters.push({
    名称:'customFilter',
    FN:函数(项目/ * {文件| FileLikeObject} * /期权){
        返回this.queue.length< 10;
    }
});//召回事件uploader.onWhenAddingFileFailed =功能(项/ * {文件| FileLikeObject} * /,过滤,选项){
    console.info('onWhenAddingFileFailed',项目,过滤器,期权);
};
uploader.onAfterAddingFile =功能(的FileItem){
    console.info('onAfterAddingFile'的FileItem);
};
uploader.onAfterAddingAll =功能(addedFileItems){
    console.info('onAfterAddingAll',addedFileItems);
};
uploader.onBeforeUploadItem =功能(项目){
    item.file.test =GG;
    console.info('onBeforeUploadItem,项目);
};
uploader.onProgressItem =功能(的FileItem,进度){
    console.info('onProgressItem'的FileItem,进度);
};
uploader.onProgressAll =功能(进度){
    console.info('onProgressAll',进度);
};
uploader.onSuccessItem =功能(的FileItem,响应状态,报头){
    console.info('onSuccessItem'的FileItem,响应状态,报头);
};
uploader.onErrorItem =功能(的FileItem,响应状态,报头){
    console.info('onErrorItem'的FileItem,响应状态,报头);
};
uploader.onCancelItem =功能(的FileItem,响应状态,报头){
    console.info('onCancelItem'的FileItem,响应状态,报头);
};
uploader.onCompleteItem =功能(的FileItem,响应状态,报头){
    console.info('onCompleteItem'的FileItem,响应状态,报头);
};
uploader.onCompleteAll =功能(){
    console.info('onCompleteAll');
};console.info('上传',上传);
}]);

和下面的PHP脚本:

 < PHP如果(!空($ _ FILES)){    $ TEMPPATH = $ _FILES ['文件'] ['tmp_name的值'];
    $ uploadPath =目录名(__FILE__)。 DIRECTORY_SEPARATOR。 '上传'。 DIRECTORY_SEPARATOR。 $ _FILES ['文件'] ['名'];    move_uploaded_file($ TEMPPATH,$ uploadPath);    $答案=阵列('答案'=>'文件传输完成');
    $ JSON = json_en code($答案);    回声$ json的;}其他{    回声没有文件;}?>

现在对于某些文件,我需要上传需要指定他们需要采取(这取决于我的 $的sessionStorage A值)

所以我的问题是我怎么可以对文件的PHPscript送价值?


解决方案

您可以通过发送值PHPscript FORMDATA 属性:

  app.controller('FileUploadCtrl',['$范围,FileUploader',函数($范围,FileUploader){
VAR上传= $ scope.uploader =新FileUploader({
    网址:'JS /控制器/ upload.php的,
    FORMDATA:[{
             参数1:VALUE1,
             参数2:'值',
             参数3:值3
           }]
});

FORMDATA 属性是一个数组,将您的数据发送到 $ _ REQUEST 在PHP。

所以,你可以使用

  $ myValue1 = $ _REQUEST ['参数1];
$ myValue2 = $ _REQUEST ['参数2'];
$ myValue3 = $ _REQUEST ['参数3'];

有关任何你所需要的。

So i am using angular-file-upload

For this i need the following controller:

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

and the following php script:

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

}

?>

Now for some of the files i need to upload i need to specify what path they need to take (which depends on a value in my $sessionStorage)

So my question is how can i send a value with the file to the PHPscript?

解决方案

You can send values to PHPscript using formData property:

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 property is an array that will send your data to $_REQUEST in PHP.

So, you can use

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

for whatever you need.

这篇关于采用了棱角分明文件上传发送额外的数值PHP脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆