提交文件而不刷新页面[重复]

Posted

技术标签:

【中文标题】提交文件而不刷新页面[重复]【英文标题】:Submitting files without refreshing page [duplicate] 【发布时间】:2016-01-08 22:09:00 【问题描述】:

我正在尝试上传图片而不刷新页面。我使用event.preventDefault() 来阻止页面刷新。但是,当我将event.preventDefault() 写入我的 jQuery 代码时,我的 jQuery 代码中的 php 代码没有被执行(我认为,至少图片没有被上传到 mysql)。这是我的代码:

<?php
    $target_file = ($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

    if(isset($_POST["submit"])) 
        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
        if($check !== false) 
            echo "File is an image - " . $check["mime"] . ".";
            $uploadOk = 1;
         else 
            echo "File is not an image.";
            $uploadOk = 0;
        
        else 
            $link = mysqli_connect(); // Connects successfully
            $image = addslashes(file_get_contents($_FILES['fileToUpload']['tmp_name']));
            $image_name = addslashes($_FILES['fileToUpload']['name']);
            $query = "INSERT INTO `pictures` (`name`, `image`) VALUES ('$image_name', '$image')";

            if (!mysqli_query($link, $query))  // Error handling
                echo "Something went wrong! :("; 
            
            else 
                $storeArray = Array();
                $query = "SELECT image FROM pictures"; 
                if($result = mysqli_query($link, $query)) 
                    while($row = mysqli_fetch_array($result)) 
                        $storeArray[] =  $row['image'];  
                    
                
                else 
                    echo "something is wrong!"; 
                
            
            for ($x = 0; $x <= 10; $x++) 
                echo '<img src="data:image/jpeg;base64,'.base64_encode($storeArray[$x]).'"/>';
            
        
    
    else 

    

?>
event.preventDefault(); 
    );
);

有人知道如何阻止页面刷新和我的 PHP 代码被执行吗?

【问题讨论】:

【参考方案1】:

执行异步 HTTP (Ajax) 请求。 jQuery AJAX

【讨论】:

***.com/questions/23980733/… 所以我试着把我的代码放在$.ajac(); 里面,还是不行……

以上是关于提交文件而不刷新页面[重复]的主要内容,如果未能解决你的问题,请参考以下文章

提交表单并刷新产品 div 而不刷新页面

在浏览器中重新加载/刷新页面而不重新提交表单?

Laravel 使用 Ajax 提交表单而不刷新页面

将数据从下拉菜单提交到mysql而不刷新页面

在浏览器中刷新页面而不重新提交表单

提交表单而不刷新页面