سایت خود را بسازید ، به روش saalek110

saalek110

Well-Known Member
صفحه ۳۵:

فایل منیجر ، صفحه دوم.


در صفحه دوم ، که از فایل فایل-منیجر بهش پاس دادیم. می خواهیم یک textarea مناسب داشته باشیم ، تا خوانا باشد و بتوانیم کدها را ادیت کنیم.

Css of textarea:

CSS:
      textarea{
            width: 100%
          direction:ltr;
     background-color: rgba(180,200,80,1);
     font-size:18px;
}

Screenshot_۲۰۲۴-۰۹-۱۹_۰۹۰۹۱۵.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
فایل سوم یا فایل save;

PHP:
$masir=$_POST['masir'];
$post_text=$_POST['post_text'];


$myfile = fopen("newfile.php", "w") or die("Unable to open file!");
fwrite($myfile, $post_text);
fclose($myfile);

فعلا به یک نام دیگر save می کنیم تا برنامه خود را تست کنیم

در مرحله بعد یک فایل php سایت خود را با نام دیگری save کنید ، ببینید کار می کنه یا نه.
اگر دقت نکنید ممکن است فایل های سایت خود را خراب کنید. پس بهتره یک کپی از فایل های سایت خود اول بگیرید.
من خود فایل فایل-منیجر را با با فایل منیجر ساخته شده ادیت کردم و با نام دیگری save کردم ، و بعد وارد فایل-منیجر جدید شدم:


Screenshot_۲۰۲۴-۰۹-۱۹_۰۹۴۹۱۸.jpg


عکس بک گراند صفحه را برداشته بودم و رنگ صفحه را تغییر داده بودم، و در عکس بالا می بینید ادیت من روی فایل php انجام شده یعنی رنگ پشت صفحه عوض شده قبلا این طوری بود:

Screenshot_۲۰۲۴-۰۹-۱۹_۰۹۵۱۰۸.jpg


. پس فایل منیجر من کار می کند.
یعنی من می توانم بدون نیاز به فایل منیجر هاست کار کنم.
 
آخرین ویرایش:

saalek110

Well-Known Member
مزایای فایل منیجر من نسبت به فایل منیجر هاست؛

سرعتش بیشتره
قابلیت شخصی سازی داره.
نیاز به لوگین در هاست نیست،

اگر بشه می خوام این فایل منیجر را منتشر کنم تا همه استفاده کنند.


تاپیکش باز شد:

فایل منیجر ساخته شده توسط saalek110 جایگزین فایل منیجر هاست

 

saalek110

Well-Known Member
ورژن ۱ فایل منیجر با نام iran_file_manager در اون تاپیک کدش هست. اگر کدش را می خواهید از اونجا کپی کنید.
 

saalek110

Well-Known Member
ورژن ۵ هم در اون تاپیک پست شد.

توانایی نمایش عکسها و ویرایش فایلهای php را دارد.
 

saalek110

Well-Known Member
ورژن ۶ هم ریلیز شد ، دارای قابلیت آپلود.

کد آپلود را از اینجا گرفتم:


PHP:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>
 

saalek110

Well-Known Member
من یک قسمتهایی از کد را تغییر دادم تا بشود هر نوع فایلی آپلود کرد. و حجم فایل را هم ۳۰ مگ ماکزیمم گرفتم ولی نمی دونم هاست ، چه اندازه فایلی را قبول می کند.
 

saalek110

Well-Known Member
برای rename و دیلت هم اینجا را داریم:


 

saalek110

Well-Known Member
بحث ساخت فایل منیجر تمام شد.

حالا من روی
کدهای آپلود فایل کار می کنم.




PHP:
$_FILES["fileToUpload"]["tmp_name"]

نام فایل در حال آپلود.مثلا:

کد:
name of file= /tmp/nuvNjf54U


PHP:
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";

  } else {
    echo "File is not an image.";
  }

}

PHP:
echo  "mime= ".$check["mime"];
این mime می تواند نوع فایل را نشان دهد مثلا چاپ کرد:
کد:
mime= image/jpeg
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
echo "<table border=\"1\">";
echo "<tr><td>Client Filename: </td>
   <td>" . $_FILES["fileToUpload"]["name"] . "</td></tr>";
echo "<tr><td>File Type: </td>
   <td>" . $_FILES["fileToUpload"]["type"] . "</td></tr>";
echo "<tr><td>File Size: </td>
   <td>" . ($_FILES["fileToUpload"]["size"] / 1024) . " Kb</td></tr>";
echo "<tr><td>Name of Temp File: </td>
   <td>" . $_FILES["fileToUpload"]["tmp_name"] . "</td></tr>";
echo "</table>";

اولی یعنی $_FILES["fileToUpload"]["name"] همون اسم فایلی است که شما برای آپلود انتخاب کردید ، همون اسمی که فایل در دستگاه شما داشت. مثلا image.jpg

در کد بالا نوع فایل من چاپ شد: image/jpeg

 

saalek110

Well-Known Member
PHP:
if ( $_FILES["fileToUpload"]["type"] == "image/jpeg") echo"your file is jpeg";

گویا برای jpg هم می نویسه jpeg

پس شاید باید از روی اسم فایل آپلودی ، باید jpeg یا jpg بودنش را افتراق داد. همون $_FILES["fileToUpload"]["name"] منظورم است. ولی گویا با تغییر پسوند jpeg به jpg اتفاقی نمی افتد.
یعنی اگر پسوند فایل jpeg باشه و پسوندش را jpg بکنیم عکس از کار نمی افتد.
 
آخرین ویرایش:

saalek110

Well-Known Member
در مورد تابع getimagesize

گویا اطلاعات دیگری به جز نوع فایل داخلش هست:
PHP:
Array ( [0] => 667
        [1] => 184
        [2] => 3
        [3] => width="667" height="184"
        [bits] => 8
        [mime] => image/png )



گویا طول و عرض سایز را هم دارد. ولی برای من همون نوع فایل فقط مهم بود.
 

saalek110

Well-Known Member
تعیین شماره سریال برای فایلهای آپلود شده در فروم:

در فروم phpbb فکر کنم یک شماره سریال برای فایلهای آپلود شده در نظر می گیرند و در جدولی در دیتابیس ، نام فایل کاربر را روبروی شماره سریال می نویسند.

فکر کنم فروم ، فایل را با نام سریالش می شناسد ولی اسم فایل کاربر را از دیتابیس پیدا می کند بهش نشان می دهد.
البته مطمئن نیستم ولی فکر می کنم همین جوری است.

حالا اگر شما هم یک فروم بسازید ، یک راهش اینه برای فایلهای آپلود شده شماره سریال بسازید و فکر می کنم نوع فایل را باید جدا کرد ، چون فکر کنم نمیشه پسوند فایلها را تغییر داد.

پس شاید هر نوع فایلی شماره سریال خود را دارد. مثلا gif ها , شمار سریال خاص خود را دارند و jpg ها و jpeg ها ، و png ها هم همین طور.
شاید هم اهمیتی نداشته باشه و همگی فایلها با یک شماره مسلسل مشخص میشن و فقط پسوند فایلها تغییر می کنه. مثلا فایل اولی txt باشه و با شماره ۱ و فایل دومی jpg باشه و با شماره ۲ یعنی شماره ها مدام بالا میره ولی پسوند متناسب با فایل برایش تعیین میشه.
 

saalek110

Well-Known Member
من با توجه به type عکس با این فرمول:
PHP:
if ($_FILES["fileToUpload"]["type"]=="image/jpeg"  )
  rename($target_file, "../f".$number.".jpg");

if ($_FILES["fileToUpload"]["type"]=="image/png"  )
  rename($target_file, "../f".$number.".png");

if ($_FILES["fileToUpload"]["type"]=="image/gif"  )
  rename($target_file, "../f".$number.".gif");

شماره سریال یکسان ساختم ولی با پسوند های مختلف.
این هم یک عکس gif و png برای نمونه:

e48.gif
result.png

یعنی شماره عکس ها همین طور می رود بالا ولی هر عکسی پسوندش همان پسوندی می شود که داشته.
در کد بالا ، بعد از آپلود عکسها تغییر نام داده می شوند متناسب با پسوندی که داشته اند.
 
آخرین ویرایش:

saalek110

Well-Known Member
کد کامل تر شده پست قبل:

PHP:
        $my_loci=$_SERVER['SERVER_NAME'];
            $link1="http://".$my_loci."/folder1/folder2" ;
if ($_FILES["fileToUpload"]["type"]=="image/jpeg"  )
{
  rename($target_file, "../f".$number.".jpg");
  $link2=$link1."/f".$number.".jpg";
}   // jpg
if ($_FILES["fileToUpload"]["type"]=="image/png"  )
{
  rename($target_file, "../f".$number.".png");
    $link2=$link1."/f".$number.".png";
}   // png
if ($_FILES["fileToUpload"]["type"]=="image/gif"  )
{
  rename($target_file, "../f".$number.".gif");
    $link2=$link1."/f".$number.".gif";
}   //  gif
echo"<br>";
echo $link2;
echo"[Img]".$link2."[/Img]";

کد بالا ، مرحله بعد از آپلود است ، که فایل آپلود شده را بنا بر نوع آن اسم برایش می سازد به این شکل f45.jpg , یعنی همه عکسها شماره دارند و با پسوندی مناسب بر اساس نوع عکس ، نامگذاری می شوند،
سپش لینک کامل عکس برای استفاده ساخته شده.
در کد بالا ، لینک عکس و لینک عکس همراه با تگهای Imag برای درج در ادیتور فروم ، آماده شده.


فایل آپلود خودش داخل یک پوشه ، داخل پوشه images است و عکس ها را بیرون پوشه خودش آپلود می کند. این برای اینه که فایل آپلود درمیان فایلهای آپلود شوه قرار نداشته باشد، مدیریت کار این طوری بهتره.


قبل آپلود عدد $number را از یک فایل تکست می خوانیم.بعد آپلود یک واحد اضافه می کنیم به عدد و دوباره در همان فایل ذخیره می کنیم. فایل تکست ، کنار فایل آپلود است و مثل حافظه فایل آپلود عمل می کند. میشد در دیتابیس هم این عدد را ذخیره کرد ولی در فایل ساده تر و قابل اعتماد تر است.

عکس نتیجه اجرا:

Screenshot_۲۰۲۴-۰۹-۲۳_۱۳۴۴۳۲.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
حالا ، به جز آپلود عکس بپردازیم به بقیه فایلها:

PHP:
echo"file type= ".$_FILES["fileToUpload"]["type"];

کد:
Game.zip


file type= application/x-zip-compressed

در نوشته بالا اسم فایل و پاسخ کد بالا را مشاهده می کنید.
 

saalek110

Well-Known Member
حتما لازم نیست ، اسم فایل از بین برود ، میشه شماره را به آخر اسم فایل افزود. این طوری دیگه فایل های با اسم تکرای نداریم و اسم فایل هم حفظ میشه. در کد زیر دو روش را کنار هم نمایش دادم:

PHP:
if ($_FILES["fileToUpload"]["type"]=="image/jpeg"  )
{
    if ($my_option==1){
      $pattern = "/.jpe?g/i";
    $cleaned_base_name=preg_replace($pattern, "", $base_name);    
  rename($target_file,   "../".$cleaned_base_name."_n".$number.".jpg");
    $link2=$link1."/".$cleaned_base_name."_n".$number.".jpg";
    }  // option1
 if ($my_option==2){
  rename($target_file, "../n".$number.".jpg");
  $link2=$link1."/n".$number.".jpg";
      }  // option=2
}   // jpg

در کد بالا ، کاربر انتخاب می کند که کدام روش استفاده شود، حفظ اسم فایل یا فقط ذکر یک شماره.
مثلا موقع آپلود ، یک چک باکس را علامت می زند که کدام روش برای اسم فایل انجام شود.
 

saalek110

Well-Known Member
کار با چک باکس:

HTML:
<input type="checkbox" name="demoCheckBox" value="1">

PHP:
<?php
if (isset($_POST['demoCheckBox'])) {
   // Checkbox is checked
   // Perform actions or logic for checked checkbox
} else {
   // Checkbox is not checked
   // Perform actions or logic for unchecked checkbox
}

?>

 

saalek110

Well-Known Member
در دو پست قبل ، برای عکسهای jpg کد گذاشتم.
برای فایل زیپ نوعش اینه: application/zip
و برای pdf نوعش اینه: application/pdf

پس برای باقی انواع فایل هم مثل jpg کد می نویسیم. و برای باقی عکسها : image/png و image/gif

فعلا من این ۵ نوع فایل را کدش را نوشتم.

مسئله بعدی سایز عکس است.
در مجیدآنلاین ، دو نوع بندانگشتی و سایز بزرگ داریم. ما برای سایز عکس چه طوری کار کنیم؟

در ضمن این پست ۷۰۰ تاپیک است.
 

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

بالا