Python 帮助改进我的文件上载方法(金字塔框架)
目前,我使用以下方法在金字塔中上传文件(通过HTML表单)Python 帮助改进我的文件上载方法(金字塔框架),python,pylons,multipart,pyramid,Python,Pylons,Multipart,Pyramid,目前,我使用以下方法在金字塔中上传文件(通过HTML表单) if request.params.get('form.submitted'): upload_directory = os.getcwd() + '/myapp/static/uploads/' my_file = request.POST.get('thumbnail') saved_file = str(upload_directory) + str(my_file.filename) per
if request.params.get('form.submitted'):
upload_directory = os.getcwd() + '/myapp/static/uploads/'
my_file = request.POST.get('thumbnail')
saved_file = str(upload_directory) + str(my_file.filename)
perm_file = open(saved_file, 'w')
shutil.copyfileobj(my_file.file, perm_file)
my_file.file.close()
perm_file.close()
我只是想知道,这是保存上传文件的好方法吗?我的方法是否存在安全问题?我还可以如何改进我的方法。谢谢。您需要使用类似于werkzug的东西,而不仅仅是将上载目录添加到给定的文件名中。攻击者可以创建一篇文件名为
。/../../some/important/path
的帖子,并导致此脚本覆盖上载\u目录之外的某个文件
如何处理大型文件?我认为对于大文件,您必须分块编写。我要试试你的方法,谢谢!嗨,目前我还没有在大文件上尝试过。主要是在meg下的文件上。但是,如果您在较大的文件上尝试此操作,请务必报告,并让我知道它的运行情况,谢谢。请使用os.path.join();比字符串串联更好。