Загрузить изображение с помощью Ajax PHP - PullRequest
0 голосов
/ 09 ноября 2018

ПРОБЛЕМА

Привет, я раскрываю проблему, которая сохраняется в течение дня. На моем сайте есть Ajax-загрузка многих изображений, сохраненных в кодировке base64 в базе данных с PHP. Этот запрос, очевидно, также требует нескольких минут в случае, если строки BLOB-объектов base64 достаточно велики.

Сначала я попытался закодировать эту строку base64 в File и вернуть ее в Ajax таким образом, чтобы преобразовать ее обратно в base64 с помощью методов FileReader и избежать задержек задержки, но я не нашел никакого решения.

Я пытался решить эту проблему, пытаясь сохранить изображение в определенном каталоге на моем сайте и сохранить его URL-адрес в базе данных, чтобы вставить его в атрибут "src" элемента "" один раз. верните его Аяксу.

Я новичок в PHP, и эти процедуры не так просты. Проблема в том, что я нахожу способ загрузки в определенный каталог напрямую из PHP.

Надеюсь, в вашем решении или идее другой режим спасения.

HTML

<div class="container" align="center">
    <form align="center" id="myForm" action = "https://giuseppemondelli.altervista.org/php/formTest.php">
        <label>Select Image</label>
        <input id="file" name="file" type="file"/>
           <button name="submit" type="submit">Submit</button>
           <img id="preview" alt="YOURIMAGE" src="#" height="150px" width="150px">
    </form>
</div>

PHP

<?php

if($_FILES["file"]["name"] != '')
{
    $connessione = mysqli_connect('localhost','giuseppemondelli','') or die (mysqli_errno ($connessione). mysqli_error ($connessione));
    $db = mysqli_select_db($connessione, "my_giuseppemondelli") or die ('Database non trovato!');

    $fileName = $_FILES["file"]["name"];
    $fileTmpName = $_FILES["file"]["name"];
    $fileExtention = strtolower(pathinfo($fileName ,PATHINFO_EXTENSION));
    $fileRoundName = round(microtime(true)) . mt_rand() . '.' . $fileExtention;
    $filePath = '/uploads/' . $fileRoundName;
    $destination = $_SERVER['DOCUMENT_ROOT'] . $filePath;

    if(!move_uploaded_file($fileTmpName, $destination))
    {
        echo "Impossibile caricare il file";
    }
    else
    {
        $protocol = stripos($_SERVER['SERVER_PROTOCOL'],'https') === true ? 'https://' : 'http://';
        $domain = $protocol . $_SERVER['SERVER_NAME'];
        $url = $domain . $path;

        $query = "INSERT INTO Files(File) VALUES ('$url')";
        mysqli_query($connessione, $query);
    }

    /*$query2 = "SELECT File FROM Files";
    $risultato2 = mysqli_query($connessione, $query2);

    while($row = mysqli_fetch_assoc($risultato2))
    {
        echo $row['File'];
    }*/

    mysqli_close($connessione);
}
?>

AJAX

    $(function() //form 
    {
         $(document).on('submit', '#myForm', function(event)
         {  
            $.ajax(
            {
                type: 'POST',
                url: 'http://giuseppemondelli.altervista.org/php/formTest.php',
                data: formData,
                contentType: false,
                cache: false,
                processData: false, 
                success: function(data) 
                {                            
                    console.log(data);
                }
            });

            event.preventDefault();
            event.stopPropagation();   
         });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...