我在 CodeIgniter 中使用多文件上传模块;脚本完全成功,只是一个简单的错误,可能是一个愚蠢的错误正在发生。
首先我想分享一个概念。在一个网站中,人们现在使用他们的电子邮件 ID 进行注册,当人们使用电子邮件 ID 进行注册时,该人的文件夹会在服务器中以电子邮件 ID 的名称创建。假设我通过电子邮件 id 在站点中注册saswat.saz.routroy@gmail.com
,然后当我登录时会话以$_SESSION['logged_user']="saswat.saz.routroy@gmail.com"
.
同样,当我注册时,会在服务器中创建一个名为 的文件夹saswat.saz.routroy@gmail.com
。现在我想将图像上传到文件夹“saswat.saz.routroy@gmail.com”。
我正在使用脚本
foreach($_FILES['photo']['name'] as $key=>$val)
{
if($_FILES['photo']['name'][$key]=="")
{
//return "Successfully Added";
}
else if($_FILES['photo']['name'][$key]!='' && ($_FILES['photo']['type'][$key]='jpeg'
|| $_FILES['photo']['type'][$key]='jpg' || $_FILES['photo']['type'][$key]='JPG'
|| $_FILES['photo']['type'][$key]='JPEG') )
{
$f_name=$_FILES['photo']['name'][$key];
$s_name=array();
$s_name=explode('.',$f_name);
$name=$s_name[0];
$name="(".$order_date.")".$name;
$slug= $name;
$slug = trim($slug," ");
$slug = trim($slug,"-");
$slug=str_replace(" ", "-", $slug);
$slug=str_replace("/", "-", $slug);
$slug=str_replace("|", "-", $slug);
$slug=str_replace("!", "-", $slug);
$slug=str_replace("+", "-", $slug);
$slug=str_replace("*", "-", $slug);
$data = array(
'photo_id' => NULL,
'order_id' => $last_order_id,
'user_id' => $user_id,
'photo_name'=>$name,
'photo_folder'=>$_SESSION['logged_user'],
'order_date'=>$order_date
);
if($this->db->insert('photo_table', $data))
{
$last_id=mysql_insert_id();
$slug= $last_id."-".$slug;
$this->db->query("UPDATE photo_table
SET photo_slug='$slug' WHERE photo_id='$last_id'");
}
$image= $_SESSION['logged_user'].'/'.md5(uniqid(rand())).$_FILES['photo']['name'][$key];
$img="./".$image;
move_uploaded_file($_FILES['photo']['tmp_name'][$key],$img);
$fullpath=$image;
$this->db->query("UPDATE photo_table
SET photo_path='$fullpath' WHERE photo_id='$last_id'");
}
}
return "Successfully Uploaded";
哪里$_SESSION['logged_user']="saswat.saz.routroy@gmail.com"
。现在,这个脚本没有给出任何错误,但仍然没有上传文件,尽管数据库正在按应有的方式进行更新。
但如果我使用脚本:
$image= 'photo_folder/'.md5(uniqid(rand())).$_FILES['photo']['name'][$key];
代替
$image= $_SESSION['logged_user'].'/'.md5(uniqid(rand())).$_FILES['photo']['name'][$key];
然后文件正在完美上传。这意味着它只是导致错误的文件夹名称,但我需要以这种方法上传文件。