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

saalek110

Well-Known Member
result.png


آپلود فایل:

HTML:
<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
  Select image to upload:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

فرم آپلود ، html است.

منبع:


و باز جواب فرم با php است.



Screenshot_۲۰۲۴-۰۱-۲۶_۱۵۰۳۰۱.jpg


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

saalek110

Well-Known Member
فایلی با نام upload.php باید بسازید ، چون در فرم چنین نامی نوشته شده وکد زیر را درون آن درج کنید:
PHP:
<?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.";
  }
}
?>

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

saalek110

Well-Known Member
خط زیر:

PHP:
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))

کد آپلود است...

قبلش تعدادی چک کردن هاست که خودتون می توانید اونها را تغییر دهید....
مثلا نوع فایل و سایز فایل را...

یک چک کردن دیگرش ، بررسی وجود فایل در اون پوشه است.....
 

saalek110

Well-Known Member
کد:
File is an image -
 image/png.
Sorry, your file is too large.Sorry, your file was not uploaded.

جواب بالا را وقتی داد که من می خواستم یک فایل یک مگایی از نوع png را آپلود کنم.‌می توانید خودتان عدد سایز را در کد تغییر دهید تا مطابق خواسته شما باشد.

یک فایل jpg زیر نیم مگا را آپلود کرد.پیامش این بود:
کد:
File is an image -
image/jpeg.
The file 1706267811757.jpg has been uploaded

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

saalek110

Well-Known Member
من خودم یک سیستمی در سایت خودم ساختم که فایل را بعد آپلود تغییر نام می داد.‌

PHP:
$target_dir = "attachs/";
echo "t dir= ".$target_dir; 
$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 "<center><h1><br>File is an image - " . $check["mime"] . ".</h1></center>";
        $uploadOk = 1;
    } else {
        echo "<center><h1><br>File is not an image.</h1></center>";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "<br><center><h1>file already exists.</h1></center>";
   // $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 "<br><center><h1>Sorry, only JPG, JPEG, PNG & GIF files are allowed.</h1></center>";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "<br><center><h1>Sorry, your file was not uploaded.</h1></center>";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "<br><br><br><center><h1>The file:</h1></center>";
        echo "<center> <h1 style='color:Red;'>". basename( $_FILES["fileToUpload"]["name"]). "</h1></center>";
        echo "<center><h1>has been uploaded</h1></center>";

//------------------------------------------------------
  rename($target_file, "attachs/f".$number.".jpg");
   //------------  file write --------------------
$myfile = fopen("last_file.txt", "w") or die("Unable to open file!");
fwrite($myfile, $number);
fclose($myfile);

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

saalek110

Well-Known Member
این قسمت:
PHP:
$myfile = fopen("last_file.txt", "w") or die("Unable to open file!");
fwrite($myfile, $number);
fclose($myfile);

ذخیره یک عدد در یک فایل است و ربطی به تغییر نام دادن ندارد...من می خواستم مثلا فایلهای نامشان این طوری باشه a1.jpg و a2.jpg و a3.jpg یعنی فایلها با این اسم ها می رفتند توی پوشه هدف. بخاطر همین مشکل هم اسمی فایلها ایجاد نمیشد....
 

saalek110

Well-Known Member
PHP:
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "<br><br><br><center><h1>The file:</h1></center>";
        echo "<center> <h1 style='color:Red;'>". basename( $_FILES["fileToUpload"]["name"]). "</h1></center>";
        echo "<center><h1>has been uploaded</h1></center>";

در گد بالا من پیام را رنگی نمایش دادم....

Screenshot_۲۰۲۴-۰۱-۲۶_۱۵۴۲۰۳.jpg

دستکاری های خودم را نشان دادم تا بدانید چطور با این کد کار کنید.
 

saalek110

Well-Known Member
من چون خودم شماره می دادم ، برای فایلهای jpg و png فرم جدا ساختم.شکل زیر:

Screenshot_۲۰۲۴-۰۱-۲۶_۱۵۴۶۱۰.jpg

تا این دو نوع فایل هر یک به پوشه خودشون بروند.
فایلهای png چون بدون کادر هستند زیبایی خاصی دارند.
مثل این:
f14.png
 

saalek110

Well-Known Member
در کد من، این خط:
PHP:
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
فکر کنم داره مسیر فایل را به اسم فایل اضافه می کنه....

و این کد:
PHP:
rename($target_file, "attachs/f".$number.".jpg");

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

شاید بشه اونجایی که چک می کنه ببینه فایل با اون نام وجود داره ، فایل قبلی یا جدید را تغییر نام داد.
 

saalek110

Well-Known Member
من کد خودم را گذاشتم...بعدا در سایتها سرچ می کنم اگر چیز بیشتری پیدا کردم اینجا می زنم.
 

saalek110

Well-Known Member
شما می توانید حالا با فرم بالا و کد بالا ، فایل آپلود کنید.
 

saalek110

Well-Known Member
کد لیست فایلهای یک پوشه هم هست.
می توانید با کمک اون مدیریت کنید.
مثلا فایلها را تغییر نام بدهید...بسته به کار شماست...
من چون اسم فایلها برام مهم نبود ، موقع آپلود خودبه خود توسط کد من تغییر نام داده می شد.
در فروم phpbb یک جدول اتچ داشت ، اونجا هم اسم واقعی فایل و هم اسم سریالی شبیه روشی که من انجام دادم ، در یک جدول نگه داری می شد... دو اسم در جدکل دیتابیس روبروی هم بودند.
 

saalek110

Well-Known Member
PHP:
<?php
     $one_date=0;
        $file_wanted;
         $fileList = glob('./*');
     echo'<table border="1">';
foreach($fileList as $filename){//99
          echo'<tr><td>';
         if(is_file($filename)){//88
 $filename=  str_replace("./","",$filename);
    $thelink="http:/nnnnnnnnnn/xtest/".$filename;
    echo $thelink."<br>";

echo '<a href="' . $thelink . '">'.$filename.'</a>';
echo"<br>";
        
            //---------------
             if (file_exists($filename)) {//777
echo "<h6>$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));  echo"</h6>";
              echo "filetime= ".filemtime($filename);  echo"<br>";
              if ( filemtime($filename)   >  $one_date  )
        {//   $one_date=filemtime($filename);
               $file_wanted=$filename;
                  }
              }//777
    echo'</td></tr>';
      }//88   
      }//99
      echo'</table>';

                  echo"target - jadid tarin= ".$file_wanted;
                  echo"<br>"; echo"<br>"; echo"<br>";
                   echo "flag";
      $filename = 'uploads/logo.jpg';
      if (file_exists($filename)) {
   echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
                   }
       else{
           echo "<br>file not exist";     
             }                       
      

?>


لیست پوشه جاری را گرفته

و تاریخ ادیت را گرفته
و جدیدترین فایل را تشخیص داده.
 

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

بالا