Php 在CodeIgniter中发布表单并上传至AWS S3不工作

Php 在CodeIgniter中发布表单并上传至AWS S3不工作,php,codeigniter,amazon-s3,Php,Codeigniter,Amazon S3,我是CodeIgniter的新手,我正在做一个将CI应用程序与AmazonS3集成的poc。我使用了github()中的s3php类,能够列出bucket和bucket中的对象以查看文件。 我的问题是,首先我无法从视图表单将值发布到控制器,然后需要检查如何将文件上载到s3。还有,在putObject函数中URI有什么用途 下面是控制器和视图文件。请让我知道我们如何做的形式后,控制器,然后上传到S3 我的控制器文件-S3demo.php class S3demo extends CI_Contro

我是CodeIgniter的新手,我正在做一个将CI应用程序与AmazonS3集成的poc。我使用了github()中的s3php类,能够列出bucket和bucket中的对象以查看文件。 我的问题是,首先我无法从视图表单将值发布到控制器,然后需要检查如何将文件上载到s3。还有,在putObject函数中URI有什么用途

下面是控制器和视图文件。请让我知道我们如何做的形式后,控制器,然后上传到S3

我的控制器文件-S3demo.php

class S3demo extends CI_Controller {

    public function index()
    {
        //Var Declaration
        $data['bucketName'] = "demacrtest";

        // Load Library
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('s3');

        // Get all required Data
        $data['bucket_list'] = $this->s3->listBuckets();
        $header_data['title'] = "CI and S3 Demo";
        $data['object_list'] = $this->s3->getBucket($data['bucketName']);


        // Load Views
        $this->load->view('common/header', $header_data);
        $this->load->view('s3_demo', $data);
        $this->load->view('common/footer');
    }

    public function doUploadtoS3(){
        echo "in";

        //Var Declaration
        $data['bucketName'] = "demacrtest";
        $uri = "dms/";
// Load Library
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('s3');

        // GET DATA POST FROM FORM
        $data = array(
        'files' => $this->input->post('uploadedfiles')
        );
        // DISPLAY DATA
        echo "<pre>";
        print_r($data);

        // PUT with custom headers:
        $put = S3::putObject(
            S3::inputFile($data),
            $data['bucketName'],
            $uri,
            S3::ACL_PUBLIC_READ,
            array(),
            array( // Custom $requestHeaders
                "Cache-Control" => "max-age=315360000",
                "Expires" => gmdate("D, d M Y H:i:s T", strtotime("+5 years"))
            )
        );
    }
}
S3demo类扩展CI_控制器{
公共职能指数()
{
//Var声明
$data['bucketName']=“demacrtest”;
//加载库
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('s3');
//获取所有必需的数据
$data['bucket_list']=$this->s3->listbugkets();
$header_data['title']=“CI和S3演示”;
$data['object_list']=$this->s3->getBucket($data['bucketName']);
//负荷视图
$this->load->view('common/header',$header\u data);
$this->load->view('s3_demo',$data);
$this->load->view('common/footer');
}
公共函数doUploadtoS3(){
呼应“in”;
//Var声明
$data['bucketName']=“demacrtest”;
$uri=“dms/”;
//加载库
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('s3');
//从表单获取数据发布
$data=数组(
'files'=>this->input->post('uploadedfiles')
);
//显示数据
回声“;
打印(数据);
//使用自定义标题放置:
$put=S3::putObject(
S3::inputFile($data),
$data['bucketName'],
$uri,
S3::ACL_PUBLIC_READ,
数组(),
数组(//自定义$RequestHeader
“缓存控制”=>“最大使用年限=315360000”,
“到期”=>gmdate(“D,D M Y H:i:s T”,标准时间(“+5年”))
)
);
}
}
我的视图文件-s3_demo.php

 public function doUploadtoS3(){

    //Var Declaration
    $config['upload_path']          = './uploads/';
    $config['allowed_types']        = 'gif|jpg|png';
    $config['max_size']             = 1000;

    // Load Library
    $this->load->library('upload', $config);
    $this->load->library('s3');

    if ( ! $this->upload->do_upload('uploadedfiles'))
    {
        $error = array('error' => $this->upload->display_errors());
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());
    }
    // CONSTRUCT URI
    $uri = "dms/images/".time()."-".$data['upload_data']['file_name'];
    $bucketName = "demacrtest";

    // DISPLAY DATA
    echo "<pre>";
    print_r($data);

    // PUT with custom headers:
    $put = S3::putObject(
        S3::inputFile($data['upload_data']['full_path']),
        $bucketName,
        $uri,
        S3::ACL_PUBLIC_READ,
        array(),
        array( // Custom $requestHeaders
            "Cache-Control" => "max-age=315360000",
            "Expires" => gmdate("D, d M Y H:i:s T", strtotime("+5 years"))
        )
    );
    var_dump($put);
}

S3存储桶列表
桶中的对象列表-
上传至S3表格 上传 上传

这项工作终于开始了。。。将uploadtos3函数更改为<代码>$this->upload->do_upload('userfile')让我工作

// PUT with custom headers:
$put = S3::putObject(
    S3::inputFile($data['upload_data']['full_path']),
    $bucketName,
    $uri,
    S3::ACL_PUBLIC_READ,
    array(),
    array( // Custom $requestHeaders
        "Cache-Control" => "max-age=315360000",
        "Expires" => gmdate("D, d M Y H:i:s T", strtotime("+5 years"))
    )
);
var_dump($put);
公共函数doUploadtoS3(){
//Var声明
$config['upload_path']='./uploads/';
$config['allowed_types']='gif | jpg | png';
$config['max_size']=1000;
//加载库
$this->load->library('upload',$config);
$this->load->library('s3');
如果(!$this->upload->do_upload('uploadedfiles'))
{
$error=array('error'=>$this->upload->display_errors());
}
其他的
{
$data=array('upload_data'=>$this->upload->data());
}
//构造URI
$uri=“dms/images/”.time()。“-”$data['upload_data']['file_name'];
$bucketName=“demacrtest”;
//显示数据
回声“;
打印(数据);
//使用自定义标题放置:
$put=S3::putObject(
S3::inputFile($data['upload\u data']['full\u path']),
$bucketName,
$uri,
S3::ACL_PUBLIC_READ,
数组(),
数组(//自定义$RequestHeader
“缓存控制”=>“最大使用年限=315360000”,
“到期”=>gmdate(“D,D M Y H:i:s T”,标准时间(“+5年”))
)
);
var_dump($put);
}

终于实现了这一目标。。。将uploadtos3函数更改为<代码>$this->upload->do_upload('userfile')让我工作

// PUT with custom headers:
$put = S3::putObject(
    S3::inputFile($data['upload_data']['full_path']),
    $bucketName,
    $uri,
    S3::ACL_PUBLIC_READ,
    array(),
    array( // Custom $requestHeaders
        "Cache-Control" => "max-age=315360000",
        "Expires" => gmdate("D, d M Y H:i:s T", strtotime("+5 years"))
    )
);
var_dump($put);
公共函数doUploadtoS3(){
//Var声明
$config['upload_path']='./uploads/';
$config['allowed_types']='gif | jpg | png';
$config['max_size']=1000;
//加载库
$this->load->library('upload',$config);
$this->load->library('s3');
如果(!$this->upload->do_upload('uploadedfiles'))
{
$error=array('error'=>$this->upload->display_errors());
}
其他的
{
$data=array('upload_data'=>$this->upload->data());
}
//构造URI
$uri=“dms/images/”.time()。“-”$data['upload_data']['file_name'];
$bucketName=“demacrtest”;
//显示数据
回声“;
打印(数据);
//使用自定义标题放置:
$put=S3::putObject(
S3::inputFile($data['upload\u data']['full\u path']),
$bucketName,
$uri,
S3::ACL_PUBLIC_READ,
数组(),
数组(//自定义$RequestHeader
“缓存控制”=>“最大使用年限=315360000”,
“到期”=>gmdate(“D,D M Y H:i:s T”,标准时间(“+5年”))
)
);
var_dump($put);
}

也尝试使用CI表单功能,但没有用
即使这不起作用…也尝试使用CI表单功能,但没有用
即使这不起作用…帮助我的网站帮助我的网站