【问题标题】:Trying to read in a file using bottle framework尝试使用瓶子框架读取文件
【发布时间】:2020-10-23 06:04:27
【问题描述】:

我正在尝试使用瓶子框架读取文件。

代码:

@app.route('/test/upload')
def upload():
    return template('upload')

@app.route('/test/upload', method='POST')
def upload():
    url = request.forms.get('url')
    filename = request.files.get('filename')

    name, ext = os.path.splitext(filename.raw_filename)
    print(name)
    ....

    return template('veredict', v = veredict)

app.run(host='localhost', port=8080, debug=True, reloader=True)

以及处理上传的 HTML 代码部分:

<form action="/test/upload" method="post" enctype="multipart/form-filename">
    <div class="form-group">

      <input type="text" class="form-control-plaintext" id="url" placeholder="Enter URL" name="url">
    
      <h6>Or submit a file containing URLs:</h6>
      <input type="file" name="filename">
      <div class = "mt-3">
        <button type="submit" class="btn btn-primary">Submit</button>
      </div>
    </div>
  </form>

当我运行我的程序时,我收到以下错误:

文件“fileup.py”,第 45 行,上传中 名称,分机 = os.path.splitext(filename.raw_filename) AttributeError:“NoneType”对象没有属性“raw_filename” 127.0.0.1 - - [02/Jul/2020 11:13:28] “POST /test/upload HTTP/1.1”500 1417

我意识到我的错误与我在文件中的读取方式有关(变量“文件名”为空,我只是不确定如何修复它。

感谢任何帮助!

【问题讨论】:

  • 据我所知,这个错误不应该发生。您确定这是提交的表单,而不是其他表单吗?
  • @JohnGordon 是的,我很确定。当我以纯文本(例如 url)阅读时,该程序可以工作,但由于某种原因,它无法正确处理文件类型输入

标签: python html frameworks bottle


【解决方案1】:

您应该将表单属性从 enctype="multipart/form-filename" 更改为 enctype="multipart/form-data"

【讨论】:

  • 好收获!我看到了multipart/blahblah,没有再看。
猜你喜欢
  • 2012-06-28
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多