0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-10 23:36:14 -05:00

Merge pull request #1197 from halfdan/994-image-uploads

Show proper error message when image upload fails
This commit is contained in:
Hannah Wolfe 2013-10-22 14:40:47 -07:00
commit 2d1e28335c
3 changed files with 15 additions and 8 deletions

View file

@ -93,6 +93,13 @@
fail: function (e, data) { fail: function (e, data) {
$dropzone.trigger("uploadfailure", [data.result]); $dropzone.trigger("uploadfailure", [data.result]);
$dropzone.find('.js-upload-progress-bar').addClass('fail'); $dropzone.find('.js-upload-progress-bar').addClass('fail');
if (data.jqXHR.status === 413) {
$dropzone.find('div.js-fail').text("The image you uploaded was too big.");
} else if (data.jqXHR.status === 415) {
$dropzone.find('div.js-fail').text("The image type you uploaded is not supported. Please use .PNG, .JPG, .GIF.");
} else {
$dropzone.find('div.js-fail').text("Something went wrong :(");
}
$dropzone.find('div.js-fail, button.js-fail').fadeIn(1500); $dropzone.find('div.js-fail, button.js-fail').fadeIn(1500);
$dropzone.find('button.js-fail').on('click', function () { $dropzone.find('button.js-fail').on('click', function () {
$dropzone.css({minHeight: 0}); $dropzone.css({minHeight: 0});

View file

@ -114,7 +114,7 @@ adminControllers = {
renameFile(filename); renameFile(filename);
}); });
} else { } else {
res.send(403, 'Invalid file type'); res.send(415, 'Unsupported Media Type');
} }
}, },
'login': function (req, res) { 'login': function (req, res) {

View file

@ -31,26 +31,26 @@ describe('Admin Controller', function() {
}); });
describe('can not upload invalid file', function() { describe('can not upload invalid file', function() {
it('should return 403 for invalid file type', function() { it('should return 415 for invalid file type', function() {
res.send = sinon.stub(); res.send = sinon.stub();
req.files.uploadimage.name = 'INVALID.FILE'; req.files.uploadimage.name = 'INVALID.FILE';
req.files.uploadimage.type = 'application/octet-stream' req.files.uploadimage.type = 'application/octet-stream'
admin.uploader(req, res); admin.uploader(req, res);
res.send.calledOnce.should.be.true; res.send.calledOnce.should.be.true;
res.send.args[0][0].should.equal(403); res.send.args[0][0].should.equal(415);
res.send.args[0][1].should.equal('Invalid file type'); res.send.args[0][1].should.equal('Unsupported Media Type');
}); });
}); });
describe('can not upload file with valid extension but invalid type', function() { describe('can not upload file with valid extension but invalid type', function() {
it('should return 403 for invalid file type', function() { it('should return 415 for invalid file type', function() {
res.send = sinon.stub(); res.send = sinon.stub();
req.files.uploadimage.name = 'INVALID.jpg'; req.files.uploadimage.name = 'INVALID.jpg';
req.files.uploadimage.type = 'application/octet-stream' req.files.uploadimage.type = 'application/octet-stream'
admin.uploader(req, res); admin.uploader(req, res);
res.send.calledOnce.should.be.true; res.send.calledOnce.should.be.true;
res.send.args[0][0].should.equal(403); res.send.args[0][0].should.equal(415);
res.send.args[0][1].should.equal('Invalid file type'); res.send.args[0][1].should.equal('Unsupported Media Type');
}); });
}); });