提问人:Skay 提问时间:8/6/2023 更新时间:8/6/2023 访问量:29
Flask web表单上传文件并将其用作附件,而无需在两者之间保存
Flask webform upload file and use it as attachment without saving in between
问:
案例:
- 使用烧瓶创建了一个 Web 表单来上传文件
- 在发布时,我想将上传的文件直接用作添加到邮件中的附件。 无需在操作之间保存上传的文件。 (所以主要是通过网络表单,我想邮寄上传的文件)
在帖子操作中,我阅读了上传的文件列表,如下所示:
files = request.files.getlist("file")
之后,我使用下面的代码创建一个带有附件的测试邮件。邮件已发送,我有附件文件,但它们都是 0kb 且无用。
有人知道如何在不先保存文件(使用空格)的情况下在发送前执行此技巧吗?
欢迎所有意见,
问候
斯凯
# Define email sender and receiver
email_sender = os.environ['EMAILSENDER']
email_password = os.environ['EMAILPASWOORD']
email_receiver = Emailreceiver
# Set the subject and body of the email
subject = 'Mail test'
body = """
Check if it works
"""
em = MIMEMultipart()
em['From'] = email_sender
em['To'] = email_receiver
em['Subject'] = subject
em.attach(MIMEText(body))
#em.set_content(body)
for file in files:
part = MIMEBase('application', "octet-stream")
#with open(file.filename, 'rb') as file_open:
#file.save(file.filename)
part.set_payload(file.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',
'attachment; filename={}'.format(file.filename))
em.attach(part)
# Add SSL (layer of security)
context = ssl.create_default_context()
# Log in and send the email
with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp:
smtp.login(email_sender, email_password)
smtp.sendmail(email_sender, email_receiver, em.as_string())
我尝试保存文件(作品),并将它们读回以作为附件发送。 邮件有效,但在没有保存选项的选项中,文件为空。
答: 暂无答案
评论