سلام دوستان من برای اپلود کردن نیاز به یه کمک دارم بنده وقتی اپلود میکنم و تکراری باشه؟چکاز باید بکنم که این تکراری بودن از بین بره؟مثلا ساعت سیستم رومیشه اضافه کرد؟ولی فقط به پایگاه اضافه میشه نام فایل تغییر نمیکنه میشه کمک کنید
سلام دوستان من برای اپلود کردن نیاز به یه کمک دارم بنده وقتی اپلود میکنم و تکراری باشه؟چکاز باید بکنم که این تکراری بودن از بین بره؟مثلا ساعت سیستم رومیشه اضافه کرد؟ولی فقط به پایگاه اضافه میشه نام فایل تغییر نمیکنه میشه کمک کنید
سلام
شما ممکنه فایل رو به همون اسمی که هست ذخیره کنید. در این صورت اتوماتیک با همنام قبلی جایگزین میشه. ولی اگر شما میای اسم رو عوض می کنی و به یه نام غیر تکراری تبدیلش می کنی و ذخیره می کنی. باید با توجه به مشخصاتی که از اون فایل در دیتابیس داری بگردی و اون رو حذف کنی (Unlink) و فایل جدید رو ذخیره کنی.
همه اینا بستگی داره شما چطور فایل رو ذخیره کنی
ممنون ولی من هیچ اطلاعاتی در مورد این بخش ندارم میشه یه مثال بدید ممنون
خوب شما لطفا اول نمونه ها رو ببین اگر مشکلی بود بفرمایید
http://www.google.com/#hl=fa&site=&s...w=1366&bih=646
http://www.google.com/#hl=fa&q=php%2...w=1366&bih=646
دوست عزیز من اپلودکردن رو که بلدم نمیدونم چکااااااااااااااااااااااا ااار کنم که مثلا یه تاریخ و زمان به ابتدای نام فایل وصل بشه که از حالت تکراری بودن دراد
/
if ($_FILES["file"]["size"] < 22000)
{//if_2
include_once("model/GetSetData.php");
$GetSetData=new GetSetData();
if(copy($_FILES["file"]["tmp_name"],"temp/".$_FILES["file"]["name"]))
{//if_3
$type=$_FILES["file"]["type"];
$file_name=$_FILES["file"]["name"];
$file_saved_name=str_replace("/",'',$GetSetData->TimeDateIp('date_fa','','')).str_replace(":",'',$ GetSetData->TimeDateIp('','time','')).rand(0000000000,9999999 999);$other="{$_POST['onvan_file']}^{$_FILES['file']['size'] }^{$type}^{$GetSetData->TimeDateIp('date_fa','','')}^{$GetSetData->TimeDateIp('','time','')}";
$insert1=$GetSetData->inserting("");
if(isset($insert1) and $insert1!=false and $insert1=="Yes")//if_4
{
$files_to_zip = array("temp/".$file_name);
$result2 = $GetSetData->create_zip($files_to_zip,"attachment/".$file_saved_name.".zip");
if($result2)//اگر تونست تبدیل به زیپ کند//if_5
{
$this->registry->template->message="ثبت انجام شد";
unlink("temp/".$_FILES["file"]["name"]); //delete File From Temp
}//if_5
}//if_4
else//else_1
{
$this->registry->template->Error_Msg= $insert1;
unlink("temp/".$_FILES["file"]["name"]); //delete File From Temp
}//else_1
}//if_3
}//if_2
else
ممنون
از تابع rand استفاده کردم و اسم فایل در پایگاه داده +عدد تولید شده دخیره میشه ولی اسم فایل تغییر نمیکنه؟
این قسمت رو بنظزتون کجاش باید تغییر کنه؟
$move=move_uploaded_file($fpic,$filePathfpic);
این روش رو که استاد شهرکی پیشنهاد دادن استفاده کن.
move_uploaded_file($_FILES['photo']['tmp_name'], '/images/'.$user['id'].'.jpg');
این روش شماره ی فید id رو میگیره و میده به عکس. اینطوری دیگه عکس همنامی وجود نداره که باعث پاک شدنش بشه.
خوب این روش خوبیه ولی اگه مثلا gif بود چی؟
دوستان این قسمت رو اگه میشه به من کمک کنید طریقه اتصال متغیر به این مسیر
$dirfp="../wordha/pic/";
مثلا میخوام این متغیر بیادو بچسبه به بعدpic
wordha/pic/$id
میشه اینگارو کرد
$pos = strrpos($filename, '.');
if($pos === false)
$ext = ""; // file has no extension; do something special?
$ext = substr($filename, $pos);
$newFilename = "foobar" . $ext;
move_uploaded_file($_FILES['picture']['tmp_name'], 'peopleimages/' . $newFilename);
دوستان ناراحت نشیدا ولی من از این کدها تو نت خیلی دیدم فقط کافیه لاتین جستجوو کنی ؟
دوستان اگه به فارسی مثثال میتونید بزنید یگسد در غیر اینصورت فقط وقت هزدومون هدر میره ممنون
مشکل من اینه که فقط میخوام به اول فایلم یه متغیر بچسبونم
اوکی
$dirfp="../wordha/pic/";
pic اسم پوشه هست یا اسمی برای تصویر ؟ اگر اسم تصویر هست برای اتصال این کار رو میشه انجام داد :
pic."$id"
شما هدفتون چیه ؟ این که اسم تکراری وارد پوشه ی ذخیره تصاویر نشه ؟ این فایلی که ضمیمه کردم ، آپلود رو بصورت کامل و به شکلی که میخواید داره . به هر تصویر یک نام میده و برای اضافه شدن تصویر بعدی ابتدا چک میکنه که این نام موجود نباشه ، اگر تکراری بود یک نام جدید اختصاص میده.یک بانک dbimage هم باید بسازید.اگر مورد استفادتون قرار گرفت و جایی مبهم بود بپرسید.
یعنی با تابع rand میاد نام های متفاوتی رو برای پوشه میذاره؟
فکر میکنم اگه متغییر تاریخ رو هم بهش اضافه کنیم بهتر باشه. اینطوری دیگه به صورت تصادفی هم هیچ عدد یکسانی نمیاد.
درسته . با rand یک مقدار تصادفی میده ولی این قسمت کد چک میکنه که این مقدار تصادفی قبلا وارد نشده باشه ، که اگر موجود بود. اسم جدید میده.
while(is_file($newname))
{
$name=rand(100000,999999);
$newname=$add.$name.'.'.$type;
}
البته این یک مثال سادست . میشه متغیرهایی هم به این مقدار تصادفی اضافه کرد.همونطور که گفتید تاریخ .
این کد رو امتحان کنید:
move_uploaded_file($_FILES['photo']['tmp_name'], '/images/'.$user['id'].mb_substr($_FILES['photo']['name'], mb_strrpos($_FILES['photo']['name'], '.', NULL, 'utf-8'), NULL, 'utf-8'));
این روش، از پسوند خود فایل اصلی استفاده میکنه. دیگه پسوند هرچی باشه فرقی نمیکنه.
موفق باشید.