in your client side js code use the js file api (this is for one file, but
multi file upload can be done too)
$('#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;
}
});
in you controller
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)
in you db.py
db.define_table('datafiles',
Field('file', 'upload', requires=IS_NOT_EMPTY()),
)
== PURE AWESOMENESS
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.