Я создаю форму для загрузки изображения профиля с предварительным просмотром и загрузки его в папку. Я получаю предварительный просмотр загруженного изображения, но файл не загружен в папку. Я делаю это правильно или поправляю меня, если я не прав
HTML
<div class="container">
<div class="avatar-upload">
<div class="avatar-edit">
<input type='file' id="imageUpload" accept=".png, .jpg, .jpeg" />
<label for="imageUpload"></label>
</div>
<div class="avatar-preview">
<div id="imagePreview" style="background-image: url(Resources/Images/user.png);"> // user.png is a default picture
<form method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="image_profile" value="">
<button type="submit" name="" style="display: none;">
</form>
</div>
</div>
</div>
</div>
JAVASCRIPT
function readURL(input) { // IMAGE UPLOAD
var image;
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#imagePreview').css('background-image', 'url('+e.target.result +')');
$('#imagePreview').hide();
$('#imagePreview').fadeIn(650);
image=e.target.result;
};
reader.readAsDataURL(input.files[0]);
console.log( $('#imagePreview').html() );
$.ajax({
type:'POST',
url:'upload.php',
processData: false,
contentType: false,
data:{'image': image},
success:function(html) {
alert(image);
}
});
}
}
$("#imageUpload").change(function() {
readURL(this);
});
PHP
<?php
// upload.php
define('UPLOAD_DIR', 'upload/');
$image = $_POST['image'];
$image = str_replace('data:upload/jpeg;base64,', '', $image);
$img = str_replace(' ', '+', $image);
$data = base64_decode($image);
$file = UPLOAD_DIR . uniq id() . '.jpeg';
$success = file_put_contents($file, $data);
move_uploaded_file( $_FILES["image"]["tmp_name"], "upload/". $_FILES["image"]["name"] );
?>
Я очень благодарен за вашу помощь заранее:)