<script>
jQuery(document).ready(function() {
var uploader = new qq.FileUploader({
// pass the dom node (ex. jQuery(selector)[0] for jQuery users)
element: document.getElementById('file-uploader'),
// path to server-side upload script
action: '{{=URL("upload_callback_submission")}}/{{=request.args(0)}}',
sizeLimit: 150000000,
minSizeLimit: 0,
allowedExtensions: ['xls','jpg', 'jpeg', 'pdf', 'txt','doc','docx','ppt', 'pptx', 'htm','html','xml','xmls', 'txt','ppt','png', 'gif'],
// set to true to output server response to console
debug: true,
// events
// you can return false to abort submit
onSubmit: function(id, fileName){},
onProgress: function(id, fileName, loaded, total){},
onComplete: function(id, fileName, responseJSON){},
onCancel: function(id, fileName){},
messages: {
// error messages, see qq.FileUploaderBasic for content
typeError: "{file} {{=T('has invalid extension.')}} {{=T('Only')}} {extensions} {{=T('are allowed.')}}",
sizeError: "{file} {{=T('is too large, maximum file size is')}} {sizeLimit}.",
minSizeError: "{file} {{=T('is too small, minimum file size is')}} {minSizeLimit}.",
emptyError: "{file} {{=T('is empty, please select files again without it.')}}",
onLeave: "{{=T('The files are being uploaded, if you leave now the upload will be cancelled.')}}"
},
showMessage: function(message){ alert(message); }
});
});
</script>
def upload_callback():
Selected_project = []
#Rendering rule for Post
Selected_project = db.Project(request.args(0, cast=int))
db.Project_Files.Project_id.default = Selected_project.id;
project = db.Project[request.args(0)]
if Selected_project is None:
raise HTTP(404)
if 'qqfile' in request.vars:
filename = request.vars.qqfile
newfilename = db.Project_Files.filename.store(request.body, filename)
db.Project_Files.insert(Project_id=Selected_project.id, filename=newfilename)
return response.json({'success': 'true'})