使用Ajax PHP

时间:2018-11-09 16:30:34

标签: php ajax html5

问题

嗨,我揭露了整天仍然存在的问题。在我的网站上,Ajax上传了许多用base64编码保存在PHP数据库中的图像。如果base64 blob字符串足够大,显然,此请求还需要几分钟。

我首先尝试在File中对该base64字符串进行编码,然后将其返回给Ajax,以便使用FileReader方法将其转换回base64并避免延迟,但是我没有找到任何解决方案。

我试图通过尝试将图像保存在我网站上的特定目录中并将其URL保存在数据库中以将其插入到元素“”的属性“ src”中来解决此问题,一次将其返回给Ajax。

我是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();   
         });
    });

0 个答案:

没有答案