I am trying to to Upload image file from html input to database using plsql dynamic Region. Using below Code
BEGIN
htp.p('<input id="inp_file" type="file">');
htp.p('<form method="post" action="">
<input id="inp_img" name="img" type="hidden" value="">
<input id="bt_save" type="submit" value="Upload">
</form>');
END;
Here is Javascript function to compress the image before upload
function fileChange(e) {
document.getElementById('inp_img').value = '';
var file = e.target.files[0];
if (file.type == "image/jpeg" || file.type == "image/png") {
var reader = new FileReader();
reader.onload = function(readerEvent) {
var image = new Image();
image.onload = function(imageEvent) {
var max_size = 300;
var w = image.width;
var h = image.height;
if (w > h) { if (w > max_size) { h*=max_size/w; w=max_size; }
} else { if (h > max_size) { w*=max_size/h; h=max_size; } }
var canvas = document.createElement('canvas');
canvas.width = w;
canvas.height = h;
canvas.getContext('2d').drawImage(image, 0, 0, w, h);
if (file.type == "image/jpeg") {
var dataURL = canvas.toDataURL("image/jpeg", 1.0);
} else {
var dataURL = canvas.toDataURL("image/png");
}
document.getElementById('inp_img').value = dataURL;
}
image.src = readerEvent.target.result;
}
reader.readAsDataURL(file);
} else {
document.getElementById('inp_file').value = '';
alert('Please only select images in JPG- or PNG-format.');
}
document.getElementById("bt_save").onclick = function() {
// alert('a');
$s('P3_NEW', document.getElementById('inp_img').value);
}
}
document.getElementById('inp_file').addEventListener('change', fileChange, false);
Here is the Process level code to Parse image into database
DECLARE
p_clob CLOB;
BEGIN
p_clob := base64encode(HTTPURITYPE.createuri(:P3_NEW).getblob());
INSERT INTO IMAGES (FILENAME, MIME_TYPE, CONTENT, last_update) values ('test','mime',clob2blob(p_clob),sysdate) ;
END;
When i Press Upload button it give error
- ORA-29273: HTTP request failed
WORKSPACE APEX_PAOLO
User : RESIZEIMAGE
Pwd " Adeel12#
Please advise about this error who i can resolve this