我正在codeigniter(PyroCMS)中开发一个电子纸模块。
我想知道如何一次上传多张图片。
谁能指导我上传多张图片?
我试过了,但我只找到了用于上传我已经在新闻模块中使用的单个图像的代码。
我正在codeigniter(PyroCMS)中开发一个电子纸模块。
我想知道如何一次上传多张图片。
谁能指导我上传多张图片?
我试过了,但我只找到了用于上传我已经在新闻模块中使用的单个图像的代码。
在视图文件中给出此图像上传代码:
echo form_label('Multi Images','',$label_attr);
echo form_upload($multi_photo_attr);
在哪里
$multi_photo_attr = array(
'id' => "cat_multi_images",
'class' => "multi",
'name' => "cat_multi_images[]",
'maxlength' => "25",
'multiple' => "multiple"
);
现在您需要在将上传照片的根目录中创建一个文件夹。
之后,在控制器的方法中,您需要将该文件夹的路径存储在一个变量中。该变量将用于上传文件夹中的图像。
接下来,获取数组中所有图像的名称,如下所示:
foreach($_FILES["cat_multi_images"] as $key => $value)
{
$i=0;
foreach($value as $key1 => $value1)
{
$multi_photo_array[$i][$key] = $value1;
$i++;
}
之后,对于每个数组元素,即对于每个图像,运行下面的代码来上传它:
function UploadFile($files,$path)
{
$extensions = array('jpeg','JPEG','gif','GIF','png','PNG','jpg','JPG','pdf','PDF','ZIP','zip','rar','RAR','html','HTML','TXT','txt','doc','docx','DOC','DOCX','ppt','PPT','pptx','PPTX','xlsx','XLSX','xls','XLS','exe','EXE','mp3','MP3','wav','WAV','m4r','M4R','mpeg','MPEG','mpg','MPG','mpe','MPE','mov','MOV','avi','AVI',);
$destination = $path.$files["name"];
//print_r($destination);exit;
// GET FILE PARTS
$fileParts = pathinfo($files['name']);
$file_name = $files['name'];
$file_name_only = $fileParts['filename'];
$file_name_only = preg_replace('/[^a-zA-Z0-9]/','',$file_name_only);
$file_extention = $fileParts['extension'];
$Count = 0;
$destination = $path.$file_name_only.".$file_extention";
$file_name = $file_name_only.".$file_extention";;
// THIS SHOULD KEEP CHECKING UNTIL THE FILE DOESN'T EXISTS
while( file_exists($destination))
{
$Count += 1;
$destination = $path. $file_name_only."-".$Count.".$file_extention";
$file_name = $file_name_only."-".$Count.".$file_extention";
}
$fileextension='';
$filename='';
if(!empty($files))
{
$filename=$files['name'];
$fileextension=substr($filename,strpos($filename,".")+1);
if(in_array($fileextension,$extensions))
{
$uploadstatus=move_uploaded_file($files["tmp_name"],$destination);
if($uploadstatus)
{
return $file_name;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
只需复制上面的代码。它应该可以正常工作,因为它是我为一般情况制作的!您可以将该代码复制到模型文件中并在控制器中调用它,如下所示:
$pr_photo_data = $this->admin_model->UploadFile($value,$targetPath_images);
$photo_list[] = $pr_photo_data;
然后将每张图片存入数据库
foreach($photo_list as $image)
{
$pro_image["cat_multi_images"] = $image;
$pro_retId = $this->admin_model->add_multipic_cat($pro_image);
}
在哪里
function add_multipic_cat($data)
{
$retId = $this->database->query_insert("photo", $data);
return $retId;
}
小心谨慎,每一步都做的准确