Created
November 28, 2017 04:43
-
-
Save lzhbrian/560258a5bbb3ab4ee2c451b7d3801dfd to your computer and use it in GitHub Desktop.
resize img before upload (js)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<img src="" id="image"> | |
<input id="input" type="file" onchange="handleFiles()"> | |
<script> | |
function handleFiles() | |
{ | |
var dataurl = null; | |
var filesToUpload = document.getElementById('input').files; | |
var file = filesToUpload[0]; | |
// Create an image | |
var img = document.createElement("img"); | |
// Create a file reader | |
var reader = new FileReader(); | |
// Set the image once loaded into file reader | |
reader.onload = function(e) | |
{ | |
img.src = e.target.result; | |
img.onload = function () { | |
var canvas = document.createElement("canvas"); | |
var ctx = canvas.getContext("2d"); | |
ctx.drawImage(img, 0, 0); | |
var MAX_WIDTH = 300; | |
var MAX_HEIGHT = 400; | |
var width = img.width; | |
var height = img.height; | |
if (width > height) { | |
if (width > MAX_WIDTH) { | |
height *= MAX_WIDTH / width; | |
width = MAX_WIDTH; | |
} | |
} else { | |
if (height > MAX_HEIGHT) { | |
width *= MAX_HEIGHT / height; | |
height = MAX_HEIGHT; | |
} | |
} | |
canvas.width = width; | |
canvas.height = height; | |
var ctx = canvas.getContext("2d"); | |
ctx.drawImage(img, 0, 0, width, height); | |
dataurl = canvas.toDataURL("image/jpeg"); | |
document.getElementById('image').src = dataurl; | |
// Post the data | |
var fd = new FormData(); | |
fd.append("name", "some_filename.jpg"); | |
fd.append("image", dataurl); | |
fd.append("info", "lah_de_dah"); | |
$.ajax({ | |
url: '/ajax_photo', | |
data: fd, | |
cache: false, | |
contentType: false, | |
processData: false, | |
type: 'POST', | |
success: function(data){ | |
$('#form_photo')[0].reset(); | |
location.reload(); | |
} | |
}); | |
} // img.onload | |
} | |
// Load files into file reader | |
reader.readAsDataURL(file); | |
} | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment