ذخیره عکس در دیتا بیس

smtp_ftp

Member
سلام به همه دوستان

من می خوام که عکس هایی رو در سایت ضخیره کنم که خوب می دونم باید اون رو در یک شاخه attachment قرار بدم و بعد آدرسش رو در دیتا بیس قرار بدم که خوب فکر می کنم باید rename هم بشن هر کاربر می تونه چند عکس رو در سایت آپلود کنه من می تونم آپلود کنم اما خوب بقیه کاراشو بلد نیستم راستش خیلی هم سرچ کردم اما چیز خوبی پیدا نکردم میشه کمکم کنید؟
 

ziXet

مدیر انجمن PHP/MYSQL
سلام به همه دوستان

من می خوام که عکس هایی رو در سایت ضخیره کنم که خوب می دونم باید اون رو در یک شاخه attachment قرار بدم و بعد آدرسش رو در دیتا بیس قرار بدم که خوب فکر می کنم باید rename هم بشن هر کاربر می تونه چند عکس رو در سایت آپلود کنه من می تونم آپلود کنم اما خوب بقیه کاراشو بلد نیستم راستش خیلی هم سرچ کردم اما چیز خوبی پیدا نکردم میشه کمکم کنید؟
خب rename کردن که کاری نداره!
از تابع rename استفاده کنید:
http://ir.php.net/rename
فقط باید دقت کنید که الگوریتمی که برای تولید اسم به کار میبرید اسم یکسان نده!
 

P.H.P

Member
سلام

طریقه ذخیره سازی رو بلد هستین

میمونه Rename و Limit کردن تعداد Upload توسط کاربر

Rename
برای تغییر نام 2 کار میتونه انجام بدی

1) Rename کنی بعد Upload
2) Upload کنی بعد Rename

اگر بخوای روش اول رو استفاده کنی باید اول نام فایل رو مشخص کنی
معمولا md5 میکنن، که این md5 میتونه Date & Time باشه

PHP:
$rename = md5(date("YmdHis"));

برای گرفتن یافتن Extension فایل هم میتونی با استفاده از تابع substr این کار رو انجام بدی

PHP:
$fileName = $_FILES["image field"]["name"];
$extention = substr($fileName, -3);

بعد از تغییر نام، فایل آپلود بشه که یا از تابع copy استفاده میکنن یا move_uploaded_file

PHP:
// Using move_uploaded_file
$path = "upload/"
$tmpName = $_FILES["image field"]["tmp_name"];
move_uploaded_file($tmpName, $path . $rename . "." . $extention);

PHP:
// Using copy
$path = "upload/"
$tmpName = $_FILES["image field"]["tmp_name"];
copy($tmpName, $path . $rename . "." . $extention);

و اگر بخوای روش دوم رو استفاده کنی
بعد از Upload یه شرط میزاری که در صورت وجود داشتن فایل با تابع Rename تغییر کنه

PHP:
rename(($oldFileWithPath, $newFileWithPath);

که روش اول صحیح تر هست

Limit
برای limit کردن تعداد آپلود میتونی کاری کنی که وقتی کاربر فایل رو آپلود کرد فیلد دیتابیس یک شمارنده اضافه بشه
که با استفاده از شرط اجازه آپلود بیش از اون تعدادی که مشخص کردی از کاربر گرفته میشه


موفق
 

smtp_ftp

Member
سلام

طریقه ذخیره سازی رو بلد هستین

میمونه Rename و Limit کردن تعداد Upload توسط کاربر

Rename
برای تغییر نام 2 کار میتونه انجام بدی

1) Rename کنی بعد Upload
2) Upload کنی بعد Rename

اگر بخوای روش اول رو استفاده کنی باید اول نام فایل رو مشخص کنی
معمولا md5 میکنن، که این md5 میتونه Date & Time باشه

PHP:
$rename = md5(date("YmdHis"));

برای گرفتن یافتن Extension فایل هم میتونی با استفاده از تابع substr این کار رو انجام بدی

PHP:
$fileName = $_FILES["image field"]["name"];
$extention = substr($fileName, -3);

بعد از تغییر نام، فایل آپلود بشه که یا از تابع copy استفاده میکنن یا move_uploaded_file

PHP:
// Using move_uploaded_file
$path = "upload/"
$tmpName = $_FILES["image field"]["tmp_name"];
move_uploaded_file($tmpName, $path . $rename . "." . $extention);

PHP:
// Using copy
$path = "upload/"
$tmpName = $_FILES["image field"]["tmp_name"];
copy($tmpName, $path . $rename . "." . $extention);

و اگر بخوای روش دوم رو استفاده کنی
بعد از Upload یه شرط میزاری که در صورت وجود داشتن فایل با تابع Rename تغییر کنه

PHP:
rename(($oldFileWithPath, $newFileWithPath);

که روش اول صحیح تر هست

Limit
برای limit کردن تعداد آپلود میتونی کاری کنی که وقتی کاربر فایل رو آپلود کرد فیلد دیتابیس یک شمارنده اضافه بشه
که با استفاده از شرط اجازه آپلود بیش از اون تعدادی که مشخص کردی از کاربر گرفته میشه


موفق


سلام دوست عزیز من همون روش اول رو انتخاب می کنم اما خوب زیاد متوجه نشدم که این دستورات را لطفا کمی بیشتر توضیح بدید مثلا همین md5
 

smtp_ftp

Member
یعنی کسی نیست که کمکی کنه؟ من مشکلی برای ساختن نام ندارم مشکلم اینه که نمی دونم چطور میشه قبل از اینکه یک فایل قبل از اینکه آپلود بشه نامشو عوض کنم
کد:
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 200000))
 
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
  $random=rand(0,15000000);  
	 
	  if (is_uploaded_file($_FILES['file']['tmp_name']))
move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$random.".jpg");

	  
	 /* $random=rand(0,15000000);
	  rename($_FILES["file"]["name"],$random.".jpg");
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $random.".jpg");*/
     print( redirect("newcat.php"));
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
 

P.H.P

Member
یعنی کسی نیست که کمکی کنه؟ من مشکلی برای ساختن نام ندارم مشکلم اینه که نمی دونم چطور میشه قبل از اینکه یک فایل قبل از اینکه آپلود بشه نامشو عوض کنم
کد:
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 200000))
 
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
  $random=rand(0,15000000);  
     
      if (is_uploaded_file($_FILES['file']['tmp_name']))
move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$random.".jpg");

      
     /* $random=rand(0,15000000);
      rename($_FILES["file"]["name"],$random.".jpg");
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $random.".jpg");*/
     print( redirect("newcat.php"));
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
:sad:
PHP:
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 200000))
 
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
    $rename = md5(date("YmdHis")); 
    $fileName = $_FILES["file"]["name"];
    $extention = substr($fileName, -3); 
    $tmpName = $_FILES["file"]["tmp_name"];
     
    move_uploaded_file($tmpName, "upload/" . $rename . "." . $extention);  

      
     /* $random=rand(0,15000000);
      rename($_FILES["file"]["name"],$random.".jpg");
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $random.".jpg");*/
     print( redirect("newcat.php"));
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
 

meysam-fathi

Active Member
راههای سخت رو نرو اگه کم تجربه ای
میتونی تایم استم + یه عدد رندوم رو به اول فایلت اضافه کنی
PHP:
    $now = time().'_'.rand(1,100);
    $uploadfile = $now. basename($_FILES[name]);
    move_uploaded_file($_FILES['tmp_name'],$uploadfile);
 

جدیدترین ارسال ها

بالا