Моя проблема в том, что я загружаю изображение, которое работает, не покидая страницу, и все это успешно. В обратном вызове успеха плагина 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();
}
?>
Задача ещё не решена.
Других решений пока нет …