gpt4 book ai didi

python - 可以使用 Python SimpleHTTPServer 或 cgi 上传文件吗?

转载 作者:太空狗 更新时间:2023-10-29 18:08:44 31 4
gpt4 key购买 nike

我想要一个简单的网页,用户可以在上面上传文件。最简单的方法是什么。

我知道如何启动 SimpleHTTPServer 但我不知道如何使用 SimpleHTTPServer 上传文件。我什至不知道这是否可能。

我找到了一些使用 cgi 上传文件的代码,但如果我在命令行中执行这段代码,它只会在屏幕上打印 HTML 代码。

最佳答案

我对 Python 还是个新手,尝试过使用您添加到帖子中的相同代码。唯一的问题是它只允许上传单个文件。我想一次上传多个文件。

使用找到的仍然可用的代码 here ,您可以将 deal_post_data 方法替换为以下内容:

    form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD':'POST'})

self.send_response(200)
self.end_headers()

saved_fns = ""

try:
if isinstance(form['file'], list):
for f in form['file']:
print f.filename
saved_fns = saved_fns + ", " + f.filename
self.save_file(f)
self.wfile.write(f.value)
else:
f = form['file']
self.save_file(f)
saved_fns = saved_fns + f.filename
self.wfile.write(f.value)
return (True, "File(s) '%s' upload success!" % saved_fns)
except IOError:
return (False, "Can't create file to write, do you have permission to write?")

然后添加如下函数来保存上传的文件:

def save_file(self, file):
outpath = os.path.join("", file.filename)
with open(outpath, 'wb') as fout:
shutil.copyfileobj(file.file, fout, 100000)

最后,更改 html 表单以允许使用插入的 HTML 中的 multiple 标签一次上传多个文件。

我刚刚完成测试,它工作正常。

希望对你有帮助

关于python - 可以使用 Python SimpleHTTPServer 或 cgi 上传文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20428514/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com