سلام وقت بخیر خدمت استاد صالحی عزیز و منتورهای گرامی؛
استاد من تمرین رو به این صورت انجام دادم و یک ریفکتورم روی کدها داشتم. اومدم مثل وردپرس که اگه فایلی تکراری باشه یک عدد بهش اضافه میکنه این بخش رو هندل کردم. یعنی هرباری که فایل تکراری اپلود کنیم اولین بار اسم خودشو میزاره دفعات بعدی اسم-1 و الی اخر. هر بخشم کامنت گذاشتم که برای دوستان قابل درکتر باشه :
if ( isset( $_POST['upload'] ) ) {
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
# get file uploaded
$file = $_FILES['file'];
# Check if a file was uploaded
if ( $file['error'] === UPLOAD_ERR_OK ) {
# Get the file extension
$file_name_part = pathinfo( $file['name'] );
$extension = strtolower( $file_name_part['extension'] );
# Define allowed file extensions
$allowed_extensions = array( 'jpg', 'jpeg', 'png' );
# Check if the file extension is allowed
if ( in_array( $extension, $allowed_extensions ) ) {
# Check if the file size is not more than 2MB (2 * 1024 * 1024 bytes)
if ( $file['size'] <= 2 * 1024 * 1024 ) {
# Set file uploaded in uploads folder on WordPress
$wp_file_path = wp_upload_dir();
# Get the current base directory for uploaded files in the form
$file_path = $wp_file_path['basedir'] . "/custom-uploads-dir";
# Check if the folder exists; if not, create it
if ( ! file_exists( $file_path ) ) {
wp_mkdir_p( $file_path );
}
# Check name of uploaded file
$file_name_part = pathinfo($file['name']);
$base_name = $file_name_part['filename'];
$extension = $file_name_part['extension'];
# Create a new name for the uploaded file
$counter = 1;
$new_file_name = $base_name;
while (file_exists($file_path . '/' . $new_file_name . '.' . $extension)) {
$new_file_name = $base_name . '-' . $counter;
$counter++;
}
$new_file_name = $new_file_name . '.' . $extension;
$target_file = $file_path . '/' . $new_file_name;
# Move the uploaded file to the new file path
if ( move_uploaded_file( $file['tmp_name'], $target_file ) ) {
echo "فایل با موفقیت آپلود شد";
} else {
echo "فایل به درستی آپلود نشده است";
}
} else {
echo "حجم فایل انتخاب شده بیشتر از 2MB است";
}
} else {
echo "فرمت عکس آپلود شده باید 'jpg', 'jpeg', 'png' باشد";
}
} else {
echo "فایلی آپلود نشد!!!";
}
}
}