Found the issue: storage of files is handled by sqlhtml and not by DAL. So I have to write a function that replicate te file storage part of sqlhtml.
Il giorno martedì 6 maggio 2014 15:19:22 UTC+2, iw3...@gmail.com ha scritto: > > Thaks, I will try. > I don't think that the iproblem is the request. Using a socket sniffer I > saw that request made by browser and my script are the same. > The problem could be in restful api. > > Il giorno martedì 6 maggio 2014 00:33:00 UTC+2, samuel bonill ha scritto: >> >> i use postman(http://www.getpostman.com/) for test restful api and works >> grate... >> >> El lunes, 5 de mayo de 2014 11:49:50 UTC-5, iw3...@gmail.com escribió: >>> >>> Hi! >>> >>> I have a SQLFORM with some filelds and an image (like example here: >>> http://web2py.com/books/default/chapter/29/07/forms-and-validators#SQLFORM). >>> >>> I have to populate the database using a python script. So I made a >>> generic restful api: >>> >>> @request.restful() >>> def api(): >>> response.view = 'generic.'+request.extension >>> def GET(*args,**vars): >>> patterns = [':auto[products]', >>> '/products/code/{products.code}', >>> '/products/code/{products.code}/:field', >>> '/products/image_filename/{products.image_filename}' >>> , >>> >>> '/products/image_filename/{products.image_filename}/:field', >>> ] >>> parser = db.parse_as_rest(patterns,args,vars) >>> if parser.status == 200: >>> return dict(content=parser.response) >>> else: >>> raise HTTP(parser.status,parser.error) >>> def POST(table_name,**vars): >>> return db[table_name].validate_and_insert(**vars) >>> def PUT(table_name,record_id,**vars): >>> return db(db[table_name]._id==record_id).validate_and_update(** >>> vars) >>> def DELETE(table_name,record_id): >>> return db(db[table_name]._id==record_id).delete() >>> return dict(GET=GET, POST=POST, PUT=PUT, DELETE=DELETE) >>> >>> On python script I use requests.post and genercs fields are ok. >>> I used sintax from here ( >>> http://docs.python-requests.org/en/latest/user/quickstart/#post-a-multipart-encoded-file >>> >>> ). >>> This upload generally work but I have a big problem: >>> uploading file from browser I find on DB the encoded name of file, and >>> dhe file on filesystem. >>> Uploading from restful I find on db, instead of encoded file name, this: >>> >>> 'FieldStorage(''image'', ''test_image.jpg'', ''...binary data of >>> image'')' >>> >>> What's the correct way to upload a file using restful api? >>> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.