我正在使用CGI.pm版本3.10来使用Perl进行文件上传。我有一个上传文件的Perl脚本,我的一个应用程序通过签入签出设备跟踪上传文件的不同修订版本。为什么CGI.pm上传成功的新文件上传文件的旧版本?
重新造物步骤:
- 我已经用我的应用程序(这是基于网络的使用Apache)做了结账(下载文件)。
- 从当前用户会话中注销。
- 用相同的凭证重新登录,然后签入(上传)一个新文件。
输出:
- 上传成功
- 的Perl上传脚本显示了正确的上传数据
- 文件的新修订创建
输出是正确的和预期之外的一个案件是问题
期:
- 新上传的文件的内容与上次上载的数据库中的内容相同。
我正在使用临时文件夹来复制新内容,如果我在上传脚本中打印新内容,那么它就是正确的。我对CGI上传大小没有限制。它似乎在CGI环境中失败了,可能是我正在使用的版本。我不使用污点模式。
任何人都可以帮助我理解可能的原因吗?
您应该尝试跟踪某些日志中文件的内容。你会看到在哪一步它改变了它不应该的方式。使用您提供的信息很难理解发生的情况。这是太高的水平。请尝试*本地化*错误并附上导致它的代码。 – 2010-09-23 13:45:14
你必须显示一些代码。构建一个展示问题的最小测试用例,以便其他人可以自行复制它。 – daxim 2010-09-23 13:47:15
很难理解你的问题。您从数据库中获取文件的最新版本,下载它,在本地修改并重新上传。它可以很好地上传到临时文件夹。当您尝试加载(或比较?)它与数据库时,您意识到临时文件现在具有文件在数据库中的内容。这是正确的吗 ?如果是这样,我的猜测是你的代码来检查数据库采取该数据库中的文件,并用它替换临时的。但是随着你的高级描述,很难说明原因。正如Ivan所建议的那样,您应该在流程的各个步骤检查文件以进行调试。 – 2010-09-23 16:26:05