why the base64 ? I want my files submitted as binaries, if possibile.....
On Wednesday, April 24, 2013 5:31:48 PM UTC+2, select wrote:
>
> 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.