首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传图像并在div上预览,不需要刷新- PHP / AJAX

问上传图像并在div上预览,不需要刷新- PHP / AJAX
EN

Stack Overflow用户
提问于 2014-01-16 08:56:46
回答 2查看 2.8K关注 0票数 1

我知道如何在php中通过表单上传图像。这是我的php代码:

代码语言:javascript
复制
<?php

    include('include/db.inc.php');

    if(!isset($_SESSION)) 
    { 
        session_start();
    }

    if(isset($_SESSION['username']))
    {
        $username = $_SESSION['username'];
        $valid_exts = array('jpeg', 'jpg', 'png', 'gif');
        $max_size = 200 * 1024; 
        $path = "../php/data/users/".$username."/"; 

            if ($_SERVER['REQUEST_METHOD'] === 'POST')
            {
                if(!empty($_FILES['image']))
                {
                    $ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));

                        if(in_array($ext, $valid_exts) && $_FILES['image']['size'] < $max_size)
                        {
                            $path = $path . 'profile.jpg';

                            if (move_uploaded_file($_FILES['image']['tmp_name'], $path))
                            {
                                $sql = 'UPDATE users SET img_src = "profile.jpg" WHERE username_crypt = "'.$username.'"';
                                $result = mysql_query($sql) or die("Query error: ".mysql_error());
                                echo("Success");
                            }
                        }
                        else
                        {
                            echo ("InvalidFile");
                        }
                }
                else
                {
                    echo ("FileNotUploaded");
                }
            }
            else
            {
                echo ("BadRequest");
            }
    }

?>

上传后,我采取被上传的图像由php和上传工作。但我的问题是:我在HTML页面中有一个div,其中已经有一个由php选择的图像。我会上传新的图像,并在不刷新页面的情况下替换它。我会上传图片和上传后,我会看到新的图像改变了以前。我不知道我怎么能做到。我不知道如何在这个上下文中使用AJAX。显然,我会控制php在上传过程中产生的错误。

我只会点击一个按钮选择图像,上传该图像,然后用新上传的图片更改图像div,而不需要刷新.

谢谢:D

EN

回答 2

Stack Overflow用户

发布于 2014-01-16 09:04:37

您可以查看jQuery文件上传:http://blueimp.github.io/jQuery-File-Upload/

票数 0
EN

Stack Overflow用户

发布于 2014-01-16 09:06:43

实际上,您需要使用AJAX。您可以在下面使用以下代码:

代码语言:javascript
复制
<script>
    $.ajax({
        type: "POST",
        url: "YOUR-PHP-URL",
    data: YOUR-DATA,
        success: function(data){
            $('YOUR-DIV').HTML(HERE-YOUR-NEW-IMAGE);
        },
        error: function(data){
            Do-SOMETHING-IF-YOU-WANT
        }
    })
</script>

你的PHP看起来很酷,在成功之后,你需要回显图像的路径。成功中的'data‘var将是您响应的路径,您现在只需要使用jQuery替换旧图像。我不确定您是否只能使用.HTML()来完成这个任务,但我认为这样做是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21157236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档