文件上载问题pythonWindows cherypy

2024-09-28 22:00:39 发布

您现在位置:Python中文网/ 问答频道 /正文

一条Python和一个新手。我尝试使用以下代码上载文件:

@cherrypy.tools.noBodyProcess()
def POST(self,theFile=None):
    lcHDRS = {}
    for key, val in cherrypy.request.headers.iteritems():
        lcHDRS[key.lower()] = val
   formFields = myFieldStorage(fp=cherrypy.request.rfile,
                                headers=lcHDRS,
                                environ={'REQUEST_METHOD':'POST'},
                                keep_blank_values=True)

    dt = datetime.now()
    date = dt.strftime('%Y-%m-%d')
    dt = dt.strftime('%Y%m%d%H%M%S')
    theFile = formFields['theFile']
    theFile.filename = str(dt) + "file"
    shutil.copy2(theFile.file.name,os.path.join(absolutePath , theFile.filename))
    ...
    ...

我检查了路径os.path.join操作系统(绝对路径,文件名)一切都很顺利。 问题是这些代码在Linux ubuntu上运行得很好,但在windows上却不行。 调用的错误是:已编辑

^{pr2}$

我哪里出错了? 如果你需要其他信息,请告诉我。在


Tags: key代码osrequestdtvalfilenamepost
2条回答

我猜windows对启动程序有UAC限制,你有没有试过在管理员权限下运行脚本?在

该问题可能与某些临时文件安全性有关,该安全性禁止通过文件名重新打开。尝试将shutil.copy2调用替换为:

with open('/path/that/you/have/permission/to', 'wb') as f:
  shutil.copyfileobj(theFile.file, f)

相关问题 更多 >