使用PHP和ajaxform在上传后不刷新图像

时间:2015-02-03 21:22:07

标签: php jquery file-upload parse-platform ajaxform

我的问题是我上传的图片无需离开页面即可运行,而且一切都成功了。在ajaxForm插件的成功回调中,我改变了图像的src,但它并没有更新。但我知道在达到成功回调时图像已完成上传。我甚至还在为它重新考验。

仍然,我必须重新加载页面才能看到它。当我使用纯JS而没有PHP时,它工作得很好。我尝试了很多不同的重新排列,但仍然没有。我已经尝试使用attr函数来更改src,但我仍然需要重新加载。图像src根据页面源正确更改。

有人可以帮忙吗?为什么我还要重新加载页面?

我的上传表单:

f($whoseprofile == $currentUser->get("username"))
        {
echo '<form id = "upform" action="/upload.php" method="post" enctype="multipart/form-data"><label for="uploadpicture"><img class="overlayImage" src="/img/newplus.png"><input type="file" id="uploadpicture" name="picture" /></label></form>';

        }

接下来是ajaxForm。

<script type="text/javascript">
        $(document).ready(function() {
            $('#uploadpicture').change(function() {

                $('#upform').ajaxForm({

                    beforeSubmit: function() {

                    },
                    success: function() { 
                        <? php $query = ParseUser::query();
                        $query - > equalTo("username", $whoseprofile);
                        $results = $query - > find();
                        $picurl = $results[0] - > get("profilePicture") - > getUrl(); ?>
                        $('#profilepic').html("");
                        $('#profilepic').html("<img id='profilepic' class='profilepic' src='<?php echo $picurl;?>'>");
                    }
                }).submit();




            });

        });
    </script>

这是upload.php

    <?php 

require 'autoload.php';

$app_id = ;
$rest_key = ;
$master_key = ;

use Parse\ParseClient;
use Parse\ParseObject;
use Parse\ParseQuery;
use Parse\ParseACL;
use Parse\ParsePush;
use Parse\ParseUser;
use Parse\ParseInstallation;
use Parse\ParseException;
use Parse\ParseAnalytics;
use Parse\ParseFile;
use Parse\ParseCloud;
use Parse\ParseRelation;
use Parse\ParseSessionStorage;

session_start();
ParseClient::initialize( $app_id, $rest_key, $master_key );

$currentUser = ParseUser::getCurrentUser();

if ($currentUser) {

 $file = ParseFile::createFromData( file_get_contents( $_FILES['picture']['tmp_name'] ), $_FILES['picture']['name'] );
  $file->save();

$currentUser->set("profilePicture", $file);
$currentUser->save();


} else {

header("Location: blahlblahblah");
exit();

}

?>

0 个答案:

没有答案