Gorilla3D Primative Teachings
PHP & Firefox 3 AJAX Image Upload
Friday, August 15, 2008
PHP + Firefox3 AJAX Image Upload
Here is a sample dump of using firefox3's getAsDataURL to push to php and using GD to process it into an image and then save to file.
/* Ajax Functions */ function Ajax(url, options) { if (typeof XMLHttpRequest!='undefined') {var page = new XMLHttpRequest();} else if (window.createRequest) { var page = window.createRequest();} else if (window.ActiveXObject) { var page = new ActiveXObject('MSXML2.XMLHTTP.3.0');} else { alert('Ooops, we failed to process your request. Tell us your browser please!'); } if (page) { if (options.method == 'post') { page.open('POST', url, true); page.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded") } else { page.open('GET', url, true); } page.onreadystatechange = function() { if (page.readyState == 4 && page.status == 200) { if ('function' == typeof options.onComplete) options.onComplete(page.responseText); } } if (options.method == 'post') { page.send(options.data); } else { page.send(null); } } else { alert('There has been a problem processing your request'); } } function writeImage() { var imgdata = $('imagefile').files.item(0).getAsDataURL(); var imgsize = $('imagefile').files.item(0).fileSize; var imgname = $('imagefile').files.item(0).fileName; Ajax("post.image.php", {"method":"post", "data": {"data":imgdata, "size":imgsize, "name":imgname}, "onComplete": function(image) { alert('uploaded'); }}); }
<input type="file" id="imagefile" name="imagefile" onchange="writeImage()"/>
<?php $uploadfile = 'temp.jpg'; //-- Parse the data $img_str = $_POST['data']; $img_str = $img_str[1]; //-- Create image from string $image = imagecreatefromstring($img_str); //-- Save to file imagejpeg($image, $uploadfile, 85); ?>
Comments
No comments