Codeigniter 如何在codeiginter中上传多张照片?
我正在尝试上传多张照片!我的代码正在运行,但它只上载了一张照片,而不是所有选定的照片 我的代码出了什么问题Codeigniter 如何在codeiginter中上传多张照片?,codeigniter,file-upload,Codeigniter,File Upload,我正在尝试上传多张照片!我的代码正在运行,但它只上载了一张照片,而不是所有选定的照片 我的代码出了什么问题 if(count($_FILES["userfile"]["name"]) == 0) { $this->session->set_flashdata('success', '?? ????? ?????? ?????'); redirect('accidents/index'); } else { // configurations from uplo
if(count($_FILES["userfile"]["name"]) == 0) {
$this->session->set_flashdata('success', '?? ????? ?????? ?????');
redirect('accidents/index');
}
else {
// configurations from upload library
$config['upload_path'] = './uploads/images';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$config['max_size'] = '2048000'; // max size in KB
$config['max_width'] = '20000'; //max resolution width
$config['max_height'] = '20000'; //max resolution height
// load CI libarary called upload
$this->load->library('upload', $config);
for($count = 0; $count < count($_FILES["userfile"]["name"]); $count++) {
// body of if clause will be executed when image uploading is failed
if(!$this->upload->do_upload()) {
$errors = array('error' => $this->upload->display_errors());
// This image is uploaded by deafult if the selected image in not uploaded
$image = 'no_image.png';
}
// body of else clause will be executed when image uploading is succeeded
else {
$data = array('upload_data' => $this->upload->data());
$image = $_FILES['userfile']['name']; //name must be userfile
}
$this->accidents_model->addphoto($image,$last_id);
}
}
我在for循环的代码中发现了问题,它是在上传一个文件之后重定向到索引页的(这是错误的),如果重定向行必须在for循环的外部:) 这里是经过一些修改后的完整工作代码,可以为每个用户id创建文件夹(我从stack usere这里获取代码:)非常感谢) 在上传页面我使用
public function upload() {
$acc = $last_id;
$file_path = ".uploads/images/" . $acc . '/';
if (isset($_FILES['multipleUpload'])) {
if (!is_dir('uploads/images/' . $acc)) {
mkdir('.uploads/images/' . $acc, 0777, TRUE);
}
$files = $_FILES;
$cpt = count($_FILES ['multipleUpload'] ['name']);
$this->load->library('upload');
for ($i = 0; $i < $cpt; $i ++) {
$name = $files ['multipleUpload'] ['name'] [$i];
$_FILES ['multipleUpload'] ['name'] = $name;
$_FILES ['multipleUpload'] ['type'] = $files ['multipleUpload'] ['type'] [$i];
$_FILES ['multipleUpload'] ['tmp_name'] = $files ['multipleUpload'] ['tmp_name'] [$i];
$_FILES ['multipleUpload'] ['error'] = $files ['multipleUpload'] ['error'] [$i];
$_FILES ['multipleUpload'] ['size'] = $files ['multipleUpload'] ['size'] [$i];
$this->upload->initialize($this->set_upload_options($file_path));
if(!($this->upload->do_upload('multipleUpload')) || $files ['multipleUpload'] ['error'] [$i] !=0)
{
print_r($this->upload->display_errors());
}
else
{
$this->accidents_model->addphoto($name,$acc);
}
}
//======================================================================================
}
$this->session->set_flashdata('success', 'the files uploaded');
redirect('accidents/index'); // :) here must located outside for loop
}
}
public function set_upload_options($file_path) {
// upload an image options
$config = array();
$config ['upload_path'] = $file_path;
$config ['allowed_types'] = 'gif|jpg|png';
return $config;
}
public function upload(){
$acc=$last_id;
$file_path=“.uploads/images/”$acc./”;
如果(isset($\u文件['multipleUpload'])){
如果(!is_dir('uploads/images/'.$acc)){
mkdir('.uploads/images/'.$acc,0777,TRUE);
}
$files=$\u文件;
$cpt=count($_文件['multipleUpload']['name']);
$this->load->library('upload');
对于($i=0;$i<$cpt;$i++){
$name=$files['multipleUpload']['name'][$i];
$\u文件['multipleUpload']['name']=$name;
$\u FILES['multipleUpload']['type']=$FILES['multipleUpload']['type'][$i];
$\u FILES['multipleUpload']['tmp\u name']=$FILES['multipleUpload']['tmp\u name'][$i];
$\u FILES['multipleUpload']['error']=$FILES['multipleUpload']['error'][$i];
$\u FILES['multipleUpload']['size']=$FILES['multipleUpload']['size'][$i];
$this->upload->initialize($this->set_upload_选项($file_path));
如果(!($this->upload->do_upload('multipleUpload'))|$$files['multipleUpload']['error'][$i]!=0)
{
打印($this->upload->display_errors());
}
其他的
{
$this->contractions\u model->addphoto($name,$acc);
}
}
//======================================================================================
}
$this->session->set_flashdata('success','thefiles upload');
此处的重定向(“事故/索引”);/:)必须位于for循环的外部
}
}
公用函数集上传选项($file\u path){
//上载图像选项
$config=array();
$config['upload\u path']=$file\u path;
$config['allowed_types']='gif | jpg | png';
返回$config;
}
我在for循环中的代码中发现问题,它是在上载一个文件之后重定向到索引页的(这是错误的),如果重定向行必须在for循环之外:)
这里是经过一些修改后的完整工作代码,可以为每个用户id创建文件夹(我从stack usere这里获取代码:)非常感谢)
在上传页面我使用
public function upload() {
$acc = $last_id;
$file_path = ".uploads/images/" . $acc . '/';
if (isset($_FILES['multipleUpload'])) {
if (!is_dir('uploads/images/' . $acc)) {
mkdir('.uploads/images/' . $acc, 0777, TRUE);
}
$files = $_FILES;
$cpt = count($_FILES ['multipleUpload'] ['name']);
$this->load->library('upload');
for ($i = 0; $i < $cpt; $i ++) {
$name = $files ['multipleUpload'] ['name'] [$i];
$_FILES ['multipleUpload'] ['name'] = $name;
$_FILES ['multipleUpload'] ['type'] = $files ['multipleUpload'] ['type'] [$i];
$_FILES ['multipleUpload'] ['tmp_name'] = $files ['multipleUpload'] ['tmp_name'] [$i];
$_FILES ['multipleUpload'] ['error'] = $files ['multipleUpload'] ['error'] [$i];
$_FILES ['multipleUpload'] ['size'] = $files ['multipleUpload'] ['size'] [$i];
$this->upload->initialize($this->set_upload_options($file_path));
if(!($this->upload->do_upload('multipleUpload')) || $files ['multipleUpload'] ['error'] [$i] !=0)
{
print_r($this->upload->display_errors());
}
else
{
$this->accidents_model->addphoto($name,$acc);
}
}
//======================================================================================
}
$this->session->set_flashdata('success', 'the files uploaded');
redirect('accidents/index'); // :) here must located outside for loop
}
}
public function set_upload_options($file_path) {
// upload an image options
$config = array();
$config ['upload_path'] = $file_path;
$config ['allowed_types'] = 'gif|jpg|png';
return $config;
}
public function upload(){
$acc=$last_id;
$file_path=“.uploads/images/”$acc./”;
如果(isset($\u文件['multipleUpload'])){
如果(!is_dir('uploads/images/'.$acc)){
mkdir('.uploads/images/'.$acc,0777,TRUE);
}
$files=$\u文件;
$cpt=count($_文件['multipleUpload']['name']);
$this->load->library('upload');
对于($i=0;$i<$cpt;$i++){
$name=$files['multipleUpload']['name'][$i];
$\u文件['multipleUpload']['name']=$name;
$\u FILES['multipleUpload']['type']=$FILES['multipleUpload']['type'][$i];
$\u FILES['multipleUpload']['tmp\u name']=$FILES['multipleUpload']['tmp\u name'][$i];
$\u FILES['multipleUpload']['error']=$FILES['multipleUpload']['error'][$i];
$\u FILES['multipleUpload']['size']=$FILES['multipleUpload']['size'][$i];
$this->upload->initialize($this->set_upload_选项($file_path));
如果(!($this->upload->do_upload('multipleUpload'))|$$files['multipleUpload']['error'][$i]!=0)
{
打印($this->upload->display_errors());
}
其他的
{
$this->contractions\u model->addphoto($name,$acc);
}
}
//======================================================================================
}
$this->session->set_flashdata('success','thefiles upload');
此处的重定向(“事故/索引”);/:)必须位于for循环的外部
}
}
公用函数集上传选项($file\u path){
//上载图像选项
$config=array();
$config['upload\u path']=$file\u path;
$config['allowed_types']='gif | jpg | png';
返回$config;
}
欢迎使用堆栈溢出!我编辑了你的问题,试图提高它的影响,修改标题,改进代码格式(缩进在这里是一个大问题),并做了一些小的语法/拼写更正。我希望你同意。这个问题已经回答了很多次了。只需搜索“codeigniter多重图像上传”,您将得到更多的工作答案。可能重复欢迎使用堆栈溢出!我编辑了你的问题,试图提高它的影响,修改标题,改进代码格式(缩进在这里是一个大问题),并做了一些小的语法/拼写更正。我希望你同意。这个问题已经回答了很多次了。只需搜索“codeigniter多重图像上传”,您将得到更多的工作答案。可能重复的