شنبه یه خبراییه 🔥 منتظر شنبه باش 😉🥳
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ احسان پژمان
اجرا نشدن درست شرط if (isset($_POST[\'uploadedFile\']) && !empty($_POST[\'uploadedFile\'])) تا این مرحله
جامعه پی اچ پی ایجاد شده در ۱۲ دی ۱۴۰۱

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

    <form method="POST" action="upload.php" enctype ="multipart/form-data">
    <div class="upload-wrapper">
      <span class="file-name">Choose a file...span>
      <label for="file-upload">Browse<input type="file" 
      id="file-upload" name="uploadedFile" >label>
    div>
    <input type="submit" name="uploadBtn" value="Upload" />
  form>

حالا توی فایل upload.php تا اینجای آموزش کدهای ذیل را داریم

if($_SERVER["REQUEST_METHOD"] == "POST"){
    if (isset($_POST['uploadBtn']) && $_POST['uploadBtn'] == 'Upload') {
        if (isset($_POST['uploadedFile']) && !empty($_POST['uploadedFile'])) {
            echo $msg ='ok';
        }else {
            echo $msg = "not ok";
        }
    }
}

حالا طبق توضیحات استاد و ساختار کدها باید بیاد اول چک کنه که آیا متد درخواستی post هست یا نه و بعد چک کنه که آیا روی input ی. uploadBtn کلیک شده یا نه و بعد بیاد چک کنه که uploadedFile ست شده باشه و خالی نباشه و اگر ست شده بود و خالی نبود باید ok رو در خروجی نمایش بده در غیر اینصورت not ok که من اگر فایلی انتخاب میکنم میفرستم هم بلاک else اجرا میشه و اگر نذارم باز همین اجرا میشه مشکل چی میتونه باشه ؟

سلام احسان جان

برای چک کردن اینکه فایلی انتخاب شده یا نه میتونید به شکل زیر عمل کنید:

if (
  isset($_FILES['uploadedFile']) &&
  $_FILES['uploadedFile']['size'] != 0 &&
  $_FILES['uploadedFile']['error'] == 0
)


بهترین پاسخ
صادق برزگر ۱۳ دی ۱۴۰۱، ۰۱:۱۱

با درود استاد گرامی

البته که این مورد هم درسته اما چون استاد توی ویدیو با آرایه ای $_POST چک میکردن برای من سوال بود چرا من هم عین مسیر رو میرم ولی فقط یک بلاک اجرا میشه که تا جایی که تست کردم حالت‌های مختلف رو به این نتیجه رسیدم چون فرم ما

enctype ="multipart/form-data">

داره به همین دلیل باید فقط و فقط با آرایه $_FILES چک بشه که من با _POST اینکار رو میکردم ....

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

احسان پژمان ۱۳ دی ۱۴۰۱، ۰۹:۰۰