我正在破解Chamilo,所以当用户查看他们的个人议程时,它会自动导入一个iCal文件。到目前为止,我已经能够确定需要调用哪些函数来实现这一点。
但是,执行实际导入的函数需要从$_FILES
超全局变量中引用一个文件对象。它从$file['tmp_name']
获取文件名并调用file_get_contents()
。
我想过复制函数并修改它,以便它期望一个常规的文件对象,但这似乎是一种糟糕的处理方式。更好的解决方案是构造它所期望的文件对象。但我不知道怎么做,谷歌也帮不上忙。
有人有什么想法吗?
如果库编写得很好,这将是不可能的—即使您构建了一个人工的$_FILES
数组,您也无法欺骗is_uploaded_file()
和move_uploaded_file()
。这些将显式检查传递的文件是否实际上传。(很久以前曾经有一个安全漏洞利用了这一点。我想,_uploaded_file()
函数就是为此而引入的。)
你可以尝试用正确的值构建一个$_FILES
数组——你可以在这里看到预期的结构。
如果这不起作用(如上所述,它不应该起作用),您将别无选择,只能更改库。在我看来,这是更干净的方式。