【问题标题】:access file loaded via html <form> using python使用 python 访问通过 html <form> 加载的文件
【发布时间】:2017-10-16 18:45:05
【问题描述】:

我有一个 python 脚本,它返回在浏览器中工作的 html 代码。 这是只有html&lt;form&gt; 部分的python 代码:

def index():
    return html("   ")


def html(woord):
    return """
<form value ='form' action=http://www.cytosine.nl/~owe4_pg3/Rogier/DreamteamPy/page1.py/fileloader method="post">
    <p>
   <LABEL for="sequence">Sequence: </LABEL>
   <INPUT type="file" name="thefile"><BR>
   <INPUT type="submit" value="Send"> <INPUT type="reset">
    </p>""" + woord+"""
</form>
"""

发送到同一个 python 文件中的以下函数:

def fileloader(req):
    info = req.form
    file = info["thefile"]
    woord = "<br><br>The file has been loaded:<br>{}".format(file)
    return html(woord)

这可以正常工作并且会显示

The file has been loaded:
testfile.doc

在浏览器中。

但我如何才能真正访问该文件并打印其内容? 我试过了:

def fileloader(req):
    info = req.form
    file = open(info["thefile"])
    text = file.read()
    woord = "<br><br>The file has been loaded:<br>{}".format(text)
    return html(woord)

但这给出了错误

IOError: [Errno 2] No such file or directory: Field('thefile','testfile.doc')

如果我删除 open() 会报错

AttributeError: read

【问题讨论】:

    标签: python html forms


    【解决方案1】:

    工作解决方案:

    <form value ='form' action=http://www.cytosine.nl/~owe4_pg3/Rogier/DreamteamPy/page1.py/fileloader method="post" enctype="multipart/form-data">
        <p>
       <LABEL for="sequence">Sequence: </LABEL>
       <INPUT type="file" name="thefile"><BR>
       <INPUT type="submit" value="Send"> <INPUT type="reset">
        </p>""" + woord+"""
    def fileloader(req):
        info = req.form["thefile"].file
        #file = open(info["thefile"].file)
        text = info.read()
        woord = "<br><br>The file has been loaded:<br>{}".format(text)
        return html(woord)
    

    【讨论】:

      猜你喜欢
      • 2020-01-12
      • 2021-03-10
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 2018-12-13
      • 1970-01-01
      • 2021-07-15
      相关资源
      最近更新 更多