$('#datafile-uploadfield').change(function() {
var upload_element = $(this)[0];
var file = upload_element.files[0];
if (file) {
var reader = new FileReader();
reader.readAsDataURL(file); //, "UTF-8");//TODO what encoding should be parsed???
reader.onload = (function(theFile) {
return function(evt) {
$.ajax({
url: '{{=URL("datafile_create")}}',
data: {
data: evt.target.result,
name: theFile.name
},
type: 'POST',
dataType: 'json',
success: function(data) {
addDatafile(data);
}
});
};
})(file);
reader.onerror = function(evt) {
alert(":( oh noo, we could not read your file");
};
//++counter;
}
});
def datafile_create():
splitcontents = request.vars.data.split(',')
import base64
file_content = base64.b64decode(splitcontents[1])
# create file like object
import StringIO
filelike_obj = StringIO.StringIO(file_content)
db_store = db.datafiles.file.store(filelike_obj, request.vars.name)
record_id = db.datafiles.insert(file=db_store)
db.define_table('datafiles',
Field('file', 'upload', requires=IS_NOT_EMPTY()),
)