I am having one profile page where default image will be (no_image.jpg). Below that there is a option where user can upload his image. Once the user selected the image and click open in the dialog box, the image should upload to server and the response should replace the (no_image.php) with his new image. I tried googling and stacking for the exact output i need. But i cannot find that.
style
#upload_progress {display:none;}
HTML
<div id="upload_progress">
</div>
<form enctype="multipart/form-data" method="post" action="">
<input type="file" name="file" id="file" onchange="uploadFile()"/>
<input type="submit" name="submit" />
<form>
js
var handleUpload = function(event){
event.preventDefault();
event.stopPropagation();
var fileInput = document.getElementById('file');
var data = new FormData();
data.append('ajax', true)
data.append('file', fileInput.files);
var request = new XMLHttpRequest();
request.upload.addEventListener('progress', function(event){
if(event.lengthComputable){
var percent = event.loaded /event.total;
var progress = document.getElementById('upload_progress');
while(progress.hasChildNodes()){
progress.removeChild(progress.firstChild);
}
progress.appendChild(document.createTextNode(Math.round(percent*100) + '%'))
}
});
request.upload.addEventListener('load', function(event){
document.getElementById('upload_progress').style.display = 'none';
});
request.upload.addEventListener('error', function(event){
alert('upload failed');
});
request.addEventListener('readystatechagne', function(event){
if(this.readyState == 4){
if(this.status == 200){
var links = document.getElementById('uploaded');
console.log(this.response);
var uploaded = eval(this.response);
var div, a;
div = document.createElement('div');
a = document.createelement(a);
a.setAttribute('href', 'files/'+uploaded);
a.appendChild(document.createTextNode(uploaded[i]));
div.appendChild(a);
links.appendChild(div);
}else{
}
}
});
request.open('POST', '/profile');
request.setRequestHeader('Cache-Control', 'no-cache');
document.getElementById('upload_progress').style.display = 'block';
request.send(data);
}
window.addEventListener('load', function(event){
var submit = document.getElementById('submit');
submit.addEventListener('click', handleUpload);
});
PHP
if($_FILES['file'] != '')
{
//print_r($_FILES);
$filename = basename($_FILES['file']['name']);
$sqlUpdate = mysql_query("UPDATE tableA SET user_img = '".$filename."' WHERE email = '".$userEmail."'");
$newname = '\images\profile/'.$filename;
if($_FILES['file']['error'] == 0 && move_uploaded_file($_FILES['file']['tmp_name'], $newname));
$Uploaded = $filename;
}
if(!empty($_POST['ajax'])){
die(json_encode($Uploaded));
exit();
}
Helpers would be appreciated. Thanks in Advance !!...