تالار گفتمان nCIS.ir

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


<?php
if(isset($_POST['submit']))
{
    $temp_name = $_FILES["file"]["tmp_name"];
    $name = $_FILES["file"]["name"];
    $size = $_FILES["file"]["size"];
  	$dir = 'uploads/';
	$status= 1;
    
if ($size !=0 ){
	$target_file = $dir . basename($name);
    if (!file_exists("uploads")) {
        mkdir("uploads", 0755);
        chmod("uploads", 0755); 
    }
    if (file_exists($target_file)) {
		$name = uniqid()."-".$name;
	}

		
	$file_types = array('jpg','jpeg','png');
	
	if (!in_array(pathinfo($name,PATHINFO_EXTENSION),$file_types)){
		echo "bad format !";
		$status = 0;
	}

    }
          
    if ($status == 1){
    	if (move_uploaded_file($temp_name, $dir."$name") ){
    		chmod("uploads/$name", 0644); 
    			echo "<img src='".$dir.$name."'>";
  		}	
    }
}
?> 
      
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="file" />
    <input type="submit" name="submit" value="submit"/>
</form>
سلام دوست عزیز. طاعات و عباداتتون قبول باشه. PHP زبان سروره یعنی اگه قراره این کاری که شما میخواید انجام بشه باید اول فایل به سرور فرستاده بشه و بعد بررسی بشه که این دقیقا همون آپلوده.

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

مثل کد زیر ( برای تصاویر jpg ) :
if(document.getElementByID('form_file').files[0].type !== 'image/jpeg') {
alert('Please change the picture');
return false;
}

ضمن اینکه برای استفاده از این کد باید فرم رو با استفاده از AJAX پست کنید.