Php 在CodeIgniter中发布表单并上传至AWS S3不工作
我是CodeIgniter的新手,我正在做一个将CI应用程序与AmazonS3集成的poc。我使用了github()中的s3php类,能够列出bucket和bucket中的对象以查看文件。 我的问题是,首先我无法从视图表单将值发布到控制器,然后需要检查如何将文件上载到s3。还有,在putObject函数中URI有什么用途 下面是控制器和视图文件。请让我知道我们如何做的形式后,控制器,然后上传到S3 我的控制器文件-S3demo.phpPhp 在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
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表单功能,但没有用
即使这不起作用…帮助我的网站帮助我的网站