• 0

تغيير اسم الملف قبل الرفع والإرسال للقاعدة في php

السلام عليكم

هذا البرنامج يقوم برفع ملف وارساله للقاعدة

كيف يمكن تغيير اسم الملف ( اسم فريد )  ليتم تخزينه بهذا الاسم مثلا

$fileName = substr(md5(uniqid(rand(), true)),3,10);

كيف يمكن تعديل الكود

<?php 
$uploadDir = 'uploads/'; 
$response = array( 
    'status' => 0, 
    'message' => 'Form submission failed, please try again.' 
); 
 
// If form is submitted 
if(isset($_POST['name']) || isset($_POST['email']) || isset($_POST['file'])){ 
    // Get the submitted form data 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
     
    // Check whether submitted data is not empty 
    if(!empty($name) && !empty($email)){ 
        // Validate email 
        if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){ 
            $response['message'] = 'Please enter a valid email.'; 
        }else{ 
            $uploadStatus = 1; 
             
            // Upload file 
            $uploadedFile = ''; 
            if(!empty($_FILES["file"]["name"])){ 
                 
                // File path config 
                $fileName = basename($_FILES["file"]["name"]); 
                $targetFilePath = $uploadDir . $fileName; 
                $fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION); 
                 
                // Allow certain file formats 
                $allowTypes = array('pdf', 'doc', 'docx', 'jpg', 'png', 'jpeg'); 
                if(in_array($fileType, $allowTypes)){ 
                    // Upload file to the server 
                    if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){ 
                        $uploadedFile = $fileName; 
                    }else{ 
                        $uploadStatus = 0; 
                        $response['message'] = 'Sorry, there was an error uploading your file.'; 
                    } 
                }else{ 
                    $uploadStatus = 0; 
                    $response['message'] = 'Sorry, only PDF, DOC, JPG, JPEG, & PNG files are allowed to upload.'; 
                } 
            } 
             
            if($uploadStatus == 1){ 
                // Include the database config file 
                include_once 'dbConfig.php'; 
                 
                // Insert form data in the database 
                $insert = $db->query("INSERT INTO form_data (name,email,file_name) VALUES ('".$name."','".$email."','".$uploadedFile."')"); 
                 
                if($insert){ 
                    $response['status'] = 1; 
                    $response['message'] = 'Form data submitted successfully!'; 
                } 
            } 
        } 
    }else{ 
         $response['message'] = 'Please fill all the mandatory fields (name and email).'; 
    } 
} 
 
// Return response 
echo json_encode($response);
?>

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يمكنك جلب امتداد الملف عن طريق تقسيم اسم الملف بهذا الشكل 

$name = explode('.', $_FILES["file"]["name"]);

ثم يمكنك برمجة كود ما ليقوم بوضع اسم بشكل عشوائي ويمكن استخدام الكود الذي أرفقته أنت بهذا الشكل 

$fileName = substr(md5(uniqid(rand(), true)),3,10);

ثم يمكنك استخدام دالة end لجلب أخر عنصر في المصفوفة بهذا الشكل 

$end = end($name);

ثم يمكنك دمج المتغيرات ببعضها بهذا الشكل 

$name = explode('.', $_FILES["file"]["name"]);
$fileName = substr(md5(uniqid(rand(), true)),3,10);
$end = end($name);
$newName = $fileName . '.' . $end;

ثم في دالة move_uploaded_file يمكنك وضع الاسم الجديد 

move_uploaded_file($_FILES["file"]["tmp_name"], $newName);

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1
بتاريخ 8 ساعات قال Hamada Ahmed:

جربت الكود لكن هناك مشكلة


<?php
$uploadDir = 'uploads/';
//..............
if(!empty($_FILES["file"]["name"]))
{  
$name = explode('.', $_FILES["file"]["name"]);
$fileName = substr(md5(uniqid(rand(), true)),3,10);
$end = end($name);
$newName = $fileName . '.' . $end;  
$fileType = pathinfo($newName, PATHINFO_EXTENSION);
$allowTypes = array('pdf', 'doc', 'docx', 'jpg', 'png', 'jpeg');
if(in_array($fileType, $allowTypes))
{
if(move_uploaded_file($_FILES["file"]["tmp_name"], $newName))
{
$uploadedFile = $fileName;
}
?>

 

هل يمكنك إرفاق نص المشكلة إذا كان يظهر لك , أو صورة للمشكلة ؟ 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 10 ساعات قال بلال زيادة:

يمكنك جلب امتداد الملف عن طريق تقسيم اسم الملف بهذا الشكل 


$name = explode('.', $_FILES["file"]["name"]);

ثم يمكنك برمجة كود ما ليقوم بوضع اسم بشكل عشوائي ويمكن استخدام الكود الذي أرفقته أنت بهذا الشكل 


$fileName = substr(md5(uniqid(rand(), true)),3,10);

ثم يمكنك استخدام دالة end لجلب أخر عنصر في المصفوفة بهذا الشكل 


$end = end($name);

ثم يمكنك دمج المتغيرات ببعضها بهذا الشكل 


$name = explode('.', $_FILES["file"]["name"]);
$fileName = substr(md5(uniqid(rand(), true)),3,10);
$end = end($name);
$newName = $fileName . '.' . $end;

ثم في دالة move_uploaded_file يمكنك وضع الاسم الجديد 


move_uploaded_file($_FILES["file"]["tmp_name"], $newName);

 

جربت الكود لكن هناك مشكلة

<?php
$uploadDir = 'uploads/';
//..............
if(!empty($_FILES["file"]["name"]))
{  
$name = explode('.', $_FILES["file"]["name"]);
$fileName = substr(md5(uniqid(rand(), true)),3,10);
$end = end($name);
$newName = $fileName . '.' . $end;  
$fileType = pathinfo($newName, PATHINFO_EXTENSION);
$allowTypes = array('pdf', 'doc', 'docx', 'jpg', 'png', 'jpeg');
if(in_array($fileType, $allowTypes))
{
if(move_uploaded_file($_FILES["file"]["tmp_name"], $newName))
{
$uploadedFile = $fileName;
}
?>

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 7 ساعات قال بلال زيادة:

هل يمكنك إرفاق نص المشكلة إذا كان يظهر لك , أو صورة للمشكلة ؟ 

شكرا حبيبي تم حلها

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن