CodeIgniter で複数のファイル アップロード モジュールを使用しています。スクリプトは完全に成功しています。単なるエラーです。ばかげたエラーが発生している可能性があります。
まず、コンセプトを共有したいと思います。人々が電子メールIDを使用して登録しているWebサイトでは、電子メールIDを使用して登録しているときに、その人のフォルダが電子メールIDの名前でサーバーに作成されます。メール IDsaswat.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];
その後、ファイルは完全にアップロードされます。つまり、エラーの原因となっているフォルダー名についてですが、そのような方法でファイルをアップロードする必要があります。