Hello everybody.
I'm trying upload files with SQLFORM.grid.
Model:
FilesUploaded = db.define_table('files_uploaded',
Field('name', notnull=True, label=T("Name")),
Field('file_name', 'upload', notnull=False, label=T("File")),
Field('owner_group', 'reference auth_group', notnull=True,
label=T("Owner Group")),
Field('creation', 'datetime', notnull=True,
default=datetime.datetime.now(), label=T("Creation")),
format='%(name)s')
Constraints:
FilesUploaded.owner_group.compute = lambda row:
auth.user_groups.keys()[0]FilesUploaded.owner_group.readable =
FalseFilesUploaded.owner_group.writable = False
FilesUploaded.creation.writable =
FalseFilesUploaded.file_name.requires =
IS_LENGTH(maxsize=(1024*(1024*5)), error_message=T("Send files with a
maximum size of") + " 5GB.")
def upload_validation(form):
sent_file = request.vars.file_name.file
file_name = request.vars.file_name.filename
extension_file = file_name.split('.')[-1]
if extension_file == 'csv':
import csv
file_lines = list(csv.reader(sent_file, delimiter=',',
quoting=csv.QUOTE_NONE))
elif extension_file == 'txt':
file_lines = list(sent_file.readlines())
else:
form.errors.file_name = T("The file types supported are .csv or .txt")
return False
max_lines = 100000
if len(lines) > max_lines:
form.errors.file_name = T("Maximum quantity per upload is
%(qty)s lines.") % dict(qty = max_lines)
return False
Controller:
form=SQLFORM.grid(query, csv=False, fields=fields, links=links,
user_signature=True, onvalidation=upload_validation)
1 -> The file size is 0 bytes after upload.
2 -> But, if I put the command "print request" on the last line of
upload_validation function, works fine.
If anyone can help me, I appreciate!
__pyslan__
--
---
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.