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

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

Hamada Ahmed

السؤال

السلام عليكم

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

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

$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);
?>

 

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

Recommended Posts

  • 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
بتاريخ 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;
}
?>

 

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

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

  • 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;
}
?>

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...