HEX
Server: LiteSpeed
System: Linux s12873.lon1.stableserver.net 5.14.0-611.11.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Dec 3 09:47:37 EST 2025 x86_64
User: jairicem (1242)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/jairicem/alfijiri.com/vendor/arutil/ar-php/public/Examples/SafeUploadTransliteration.php
<?php

use ArUtil\I18N\Arabic;

require_once __DIR__ . '/../../vendor/autoload.php';

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>Safe Upload Examples for Arabic Filename</title>
</head>
<body>
<div class="Paragraph">
    <div class="Paragraph">
        <h1 dir="ltr">Transliteration</h1>
        <h3><a style="float: right" href="index.php">Back to Index</a></h3>
        <h2 dir="ltr">Safe Upload Examples Output:</h2>
        <p><i>PHP5 is not capable of addressing files with multi-byte characters in their names at all (including Arabic
                language).</i></p>
        
        <?php
        /**
         * Example of Safe Upload Examples for Arabic Filename
         *
         * @category  I18N
         * @package   I18N_Arabic
         * @author    Khaled Al-Sham'aa <khaled@ar-php.org>
         * @copyright 2006-2016 Khaled Al-Sham'aa
         *
         * @license   LGPL <http://www.gnu.org/licenses/lgpl.txt>
         * @link      http://www.ar-php.org
         */
        
        if (isset($_POST['submit'])) {
    
            /** @var \ArUtil\I18N\Transliteration $Arabic */
            $Arabic = new Arabic('Transliteration');
            
            // Continue only if the file was uploaded via HTTP POST
            if (is_uploaded_file($_FILES['image']['tmp_name'])) {
                
                // Is file size less than 1 MB = 1,048,576 Byte
                if ($_FILES['image']['size'] < 1048576) {
                    
                    // Detect MIME Content-type for a file
                    if (function_exists('mime_content_type')) {
                        $mime = mime_content_type($_FILES['image']['tmp_name']);
                    } else {
                        $mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $_FILES['image']['tmp_name']);
                    }
                    
                    // List of accepted MIME Content-type
                    $images = ['image/jpeg', 'image/gif', 'image/png', 'image/svg+xml'];
                    
                    if (in_array($mime, $images)) {
                        
                        // PHP5 is not capable of addressing files with multi-byte characters in their names at all.
                        // This is why we use Transliteration functionality in Arabic class
                        $filename = trim($Arabic->ar2en($_FILES['image']['name']));
                        
                        // Moves an uploaded file to a new location
                        // move_uploaded_file ($_FILES['image']['tmp_name'], $dir.DIRECTORY_SEPARATOR.$filename);
                        echo "move_uploaded_file(\$_FILES['image']['tmp_name'], \$dir.DIRECTORY_SEPARATOR.\"$filename\");";
                    } else {
                        echo '<h3>You can upload image file only (i.e. gif, jpg, png, and svg)!</h3>';
                    }
                } else {
                    echo '<h3>You can not upload file bigger than 1MB!</h3>';
                }
            } else {
                echo '<h3>You have to select file first to upload it!</h3>';
            }
        }
        
        ?>
        <br/><br/>

        <form action="SafeUploadTransliteration.php" method="post" enctype="multipart/form-data">

            <input name="image" type="file" size="60">

            <input name="submit" type="submit" value="Upload">

        </form>

        <h4>Verified Conditions:</h4>
        <ol>
            <li>Max uploaded file size is 1 MB</li>
            <li>Accepted MIME Content-types are: image/jpeg, image/gif, image/png, and image/svg+xml</li>
        </ol>

    </div>
    <br/>

    <div class="Paragraph">
        <h2>Safe Upload Examples Code:</h2>
        <?php
        $code = <<< END
<?php

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

    require '../../Arabic.php';
    \$Arabic = new I18N_Arabic('Transliteration');
    
    // Continue only if the file was uploaded via HTTP POST
    if (is_uploaded_file(\$_FILES['image']['tmp_name'])) {

        // Is file size less than 1 MB = 1,048,576 Byte
        if (\$_FILES['image']['size'] < 1048576) {

            // Detect MIME Content-type for a file 
            \$mime = mime_content_type(\$_FILES['image']['tmp_name']);
            
            // List of accepted MIME Content-type
            \$images = array('image/jpeg', 'image/gif', 'image/png', 'image/svg+xml');

            if (in_array(\$mime, \$images)) {

                // PHP5 is not capable of addressing files with multi-byte characters in their names at all.
                // This is why we use Transliteration functionality in Arabic class
                \$filename = trim(\$Arabic->ar2en(\$_FILES['image']['name']));
                
                // Moves an uploaded file to a new location
                move_uploaded_file (\$_FILES['image']['tmp_name'], \$dir.DIRECTORY_SEPARATOR.\$filename);
            } else {
                echo '<h3>You can upload image file only (i.e. gif, jpg, png, and svg)!</h3>';
            }
        } else {
            echo '<h3>You can not upload file bigger than 1MB!</h3>';
        }
    } else {
        echo '<h3>You have to select file first to upload it!</h3>';
    }
}

?>

<form  action="SafeUploadTransliteration.php" method="post" enctype="multipart/form-data">

    <input name="image" type="file" size="60">

    <input name="submit" type="submit" value="Upload">

</form><br />
END;
        
        highlight_string($code);
        ?>
    </div>
</body>
</html>