اذهب إلى المحتوى
  • 0

مشكلة في رفع ملف

ايمن ميلاد

السؤال

السلام عليكم لدي سكربت تالي يقبل حجم ملفات التي اقل من واحد ميغا لكن لايقبل ملفات حجمه اكثر  علي الرغم لم احدد حجم ملف 

كود مرفقا 

if(isset($_POST['submit'])){ 

								$file_proj = date("Ymdhis").$_FILES['file']['name'];
								$file_type = $_FILES['file']['type'];
								$file_tmp = $_FILES['file']['tmp_name'];
								$file_dir = '../uploads/';
								$id_pro = $_GET['id'];
	
								if(in_array($file_type,array("application/pdf","application/vnd.ms-powerpoint","application/msword","application/vnd.ms-word.document.macroenabled.12"))){
							   
									move_uploaded_file($file_tmp,$file_dir.$file_proj); 
								   $sql = "INSERT INTO `file_project`(`id_p`, `path_file`) VALUES ($id_pro ,'$file_proj')";
								   $query = mysqli_query($con,$sql);		  
									
									echo '<div class="col-md-12"><div class="alert alert-success" role="alert"> تم اضافة الملف بنجاح </div></div>';
									
									
							   }else{
								  
								   echo '<div class="col-md-12"><div class="alert alert-danger text-center" role="alert">خطأ في رفع الملف الرجائ التحقق من نوع الملف<div /> </div>';  
			 
							   }
							}
								
								 
						 }

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

المشكلة الرئيسية هي أن السكربت يبدو أنه لا يتحقق من حجم الملفات قبل محاولة رفعها، وبالتالي لا يتم التحقق من تجاوز حدود الحجم المسموح بها، ولحل هذه المشكلة، يجب عليك إضافة التحقق من حجم الملفات قبل محاولة رفعها. يمكنك القيام بذلك باستخدام الميزة المدمجة في PHP لفحص حجم الملف المُحمَّل قبل محاولة حفظه على السيرفر.

بداية يمكنك التحقق من حجم الملف باستخدام الدالة:

اقتباس

PHP `$_FILES['file']['size']`

ثم مقارنة حجم الملف الذي تم تحميله مع الحد الأقصى المسموح به، فإذا كان حجم الملف يتجاوز الحد الأقصى المسموح به، فسوف يتم عرض رسالة خطأ ولا تقم بحفظ الملف على السيرفر.وهذا تعديل للسكريبت الخاص بك ليتماشى مع ما ذكرته:

if(isset($_POST['submit'])){ 
    $file_proj = date("Ymdhis") . $_FILES['file']['name'];
    $file_type = $_FILES['file']['type'];
    $file_tmp = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size']; // Get the size of the file
    $file_dir = '../uploads/';
    $id_pro = $_GET['id'];

    // Check if file size exceeds the maximum allowed size (in bytes)
    $max_file_size_allowed = 1048576; // 1 MB, you can change this as per your requirement
    if ($file_size <= $max_file_size_allowed) {
        if(in_array($file_type,array("application/pdf","application/vnd.ms-powerpoint","application/msword","application/vnd.ms-word.document.macroenabled.12"))){
            move_uploaded_file($file_tmp,$file_dir.$file_proj); 
            $sql = "INSERT INTO `file_project`(`id_p`, `path_file`) VALUES ($id_pro ,'$file_proj')";
            $query = mysqli_query($con,$sql);          
            echo '<div class="col-md-12"><div class="alert alert-success" role="alert"> تم اضافة الملف بنجاح </div></div>';
        } else {
            echo '<div class="col-md-12"><div class="alert alert-danger text-center" role="alert">خطأ في رفع الملف الرجاء التحقق من نوع الملف<div /> </div>';  
        }
    } else {
        echo '<div class="col-md-12"><div class="alert alert-danger text-center" role="alert">حجم الملف يتجاوز الحد المسموح به<div /> </div>';  
    }
}
تم التعديل في بواسطة ياسر مسكين
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحبا
المشكلة لديك  قد تكون بسبب إعدادات رفع الملفات  للتحكم في الحجم الأقصى للملفات التي يمكن رفعها ممكن استخدام إعداد max_file_sizeفي ملف config/upload.php قم بتغيريها الي
 

'max_file_size' => 2097152,

وبعد ذاللك اكتب هذه الامر في الترمينل لكي تمسح الكاش
 

php artisan config:clear

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 ساعة قال ياسر مسكين:

المشكلة الرئيسية هي أن السكربت يبدو أنه لا يتحقق من حجم الملفات قبل محاولة رفعها، وبالتالي لا يتم التحقق من تجاوز حدود الحجم المسموح بها، ولحل هذه المشكلة، يجب عليك إضافة التحقق من حجم الملفات قبل محاولة رفعها. يمكنك القيام بذلك باستخدام الميزة المدمجة في PHP لفحص حجم الملف المُحمَّل قبل محاولة حفظه على السيرفر.

بداية يمكنك التحقق من حجم الملف باستخدام الدالة:

ثم مقارنة حجم الملف الذي تم تحميله مع الحد الأقصى المسموح به، فإذا كان حجم الملف يتجاوز الحد الأقصى المسموح به، فسوف يتم عرض رسالة خطأ ولا تقم بحفظ الملف على السيرفر.وهذا تعديل للسكريبت الخاص بك ليتماشى مع ما ذكرته:

if(isset($_POST['submit'])){ 
    $file_proj = date("Ymdhis") . $_FILES['file']['name'];
    $file_type = $_FILES['file']['type'];
    $file_tmp = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size']; // Get the size of the file
    $file_dir = '../uploads/';
    $id_pro = $_GET['id'];

    // Check if file size exceeds the maximum allowed size (in bytes)
    $max_file_size_allowed = 1048576; // 1 MB, you can change this as per your requirement
    if ($file_size <= $max_file_size_allowed) {
        if(in_array($file_type,array("application/pdf","application/vnd.ms-powerpoint","application/msword","application/vnd.ms-word.document.macroenabled.12"))){
            move_uploaded_file($file_tmp,$file_dir.$file_proj); 
            $sql = "INSERT INTO `file_project`(`id_p`, `path_file`) VALUES ($id_pro ,'$file_proj')";
            $query = mysqli_query($con,$sql);          
            echo '<div class="col-md-12"><div class="alert alert-success" role="alert"> تم اضافة الملف بنجاح </div></div>';
        } else {
            echo '<div class="col-md-12"><div class="alert alert-danger text-center" role="alert">خطأ في رفع الملف الرجاء التحقق من نوع الملف<div /> </div>';  
        }
    } else {
        echo '<div class="col-md-12"><div class="alert alert-danger text-center" role="alert">حجم الملف يتجاوز الحد المسموح به<div /> </div>';  
    }
}

انا اريد يقبل ملفات من كليو بايت الي 15 ميغا اقصي شي وليس اقصي شي واحد ميغا 

بتاريخ 23 دقائق مضت قال gamal_king:

انا اريد يقبل ملفات من كليو بايت الي 15 ميغا اقصي شي وليس اقصي شي واحد ميغا 

قمت بعمل اقصي شي 15 ميغا قبل انظر للكود لكن تظهر رسالة تالية علي الرغم من انه pdf امتداده 

 if (isset($_POST['submit'])) {
                        $file_proj = date("Ymdhis") . $_FILES['file']['name'];
                        $file_type = $_FILES['file']['type'];
                        $file_tmp = $_FILES['file']['tmp_name'];
                        $file_size = $_FILES['file']['size']; // Get the size of the file
                        $file_dir = '../uploads/';
                        $id_pro = $_GET['id'];

                        // Check if file size exceeds the maximum allowed size (in bytes)
                        $max_file_size_allowed = 8388608; // 15 MB, you can change this as per your requirement
                        if ($file_size <= $max_file_size_allowed) {
                            if (in_array($file_type, array("application/pdf", "application/vnd.ms-powerpoint", "application/msword", "application/vnd.ms-word.document.macroenabled.12"))) {
                                move_uploaded_file($file_tmp, $file_dir . $file_proj);
                                $sql = "INSERT INTO `file_project`(`id_p`, `path_file`) VALUES ($id_pro ,'$file_proj')";
                                $query = mysqli_query($con, $sql);
                                echo '<div class="col-md-12"><div class="alert alert-success" role="alert"> تم اضافة الملف بنجاح </div></div>';
                            } else {
                                echo '<div class="col-md-12"><div class="alert alert-danger text-center" role="alert">خطأ في رفع الملف الرجاء التحقق من نوع الملف<div /> </div>';
                            }
                        } else {
                            echo '<div class="col-md-12"><div class="alert alert-danger text-center" role="alert">حجم الملف يتجاوز الحد المسموح به<div /> </div>';
                        }
                    }

 

لقطة شاشة 2024-03-04 231541.png

بتاريخ 3 ساعة قال Mahmoud Hassan19:

مرحبا
المشكلة لديك  قد تكون بسبب إعدادات رفع الملفات  للتحكم في الحجم الأقصى للملفات التي يمكن رفعها ممكن استخدام إعداد max_file_sizeفي ملف config/upload.php قم بتغيريها الي
 

'max_file_size' => 2097152,

وبعد ذاللك اكتب هذه الامر في الترمينل لكي تمسح الكاش
 

php artisan config:clear

 

اين اجد مكانه ملف

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لو مش موجود عندك ممكن تغير القيمة دي في ملف php.ini
 

upload_max_filesize = 10MB

او ممكن تستخدم validator في controller
 

$validator = Validator::make($request->all(), [
    'file' => 'max:5120', //5MB 
]);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...