Web2Py - 通过电子邮件验证上传的文件



web2py experts.我尝试完成的任务如下:

- 允许浏览我的网站的人通过表单将文件上传到我的网站(通过 crud.create() 实现) -访问者无需建立帐户或登录即可上传文件 -用户需要提供电子邮件地址才能上传文件

-基本上,在用户上传文件后,文件将处于托管/不确定状态,并向用户发送验证/验证电子邮件

-用户单击验证电子邮件中的链接后,该文件将发布到页面,并公开可供下载

最好的

方法是什么?谢谢!

最明显的是使用会话。将上传文件的名称保留在某个会话变量中。

使用 auth.verify_email(onaccept=...)

当用户的电子邮件被验证时,您的代码将被调用 - 然后您可以从session.variable和auth.user_id
中关联文件和user:文件名同时设置任何权限

如果您希望用户可以有时间思考并确认来自另一个 comp 和另一个会话的注册,请在文件表中包含一个 user.email 字段:

db.define_table('gifts', 
Field('im', 'upload', requires=IS_EMPTY_OR(IS_IMAGE(maxsize=(200, 200))), autodelete=True, uploadfolder='static/gifts'),
Field('email', requires=IS_EMAIL()),
Field('notes','text', default='', writable=True),
Field('t0','datetime',default=request.now, readable=False, writable=False),
Field('t', 'datetime', default=request.now, update=request.now, writable=False),
Field('rating', 'integer', default=0, writable=False, readable=False),
Field('hidden', 'boolean', default=True, writable=False, readable=True),
)

然后在 onaccept 包含匹配查询的回调函数中: db(db.gifts.email==auth.user.email).update(hidden=False)

最好在向用户提供适当的反馈之前选择任何隐藏文件(可能是他在确认时刻之前已经上传了几个文件)

祝你好运

在包含上传信息的表中,添加一个名为"validation_key"的新字符串字段。上传文件时,在其中插入 GUID 或相当长的字母数字字符串。将此密钥作为电子邮件中链接的一部分发送。当用户单击链接时,搜索密钥,如果找到,则将数据库中匹配的"validation_key"设置为 null。空validation_key表示已验证的上传,您可以允许下载该文件。

最新更新