-1
if ($_FILES['doc']['error'][$i] == UPLOAD_ERR_OK) {
                        $tmp = explode('.', $_FILES['doc']['name'][$i]);

                        $filename = md5($GLOBALS['TSFE']->fe_user->user['uid'].'.'.$tmp[0].'.'.time()).'.'.$tmp[sizeof($tmp) - 1];
                        var_dump($_FILES['doc']['tmp_name'][$i]);
                        if (move_uploaded_file($_FILES['doc']['tmp_name'][$i], PATH_site.$this->uploadDir.$filename)) {

在上面的脚本中,我用来var_dump($_FILES['doc']['tmp_name'][$i]);输出文件的临时副本,在前端,它显示:

string(14) "/tmp/phpFs1iE7" string(14) "/tmp/phpGAgJFX" 

然后我去了/home/thejob/tmp,但没有看到这样的文件:phpFs1iE7,,phpGAgJFX我使用了ssh并启用了show hidden files。所以我只是想知道为什么我在服务器上看不到这些文件的临时副本?

4

2 回答 2

2

这些文件是临时的。它们是如此临时,PHP 在请求结束时将它们删除。它们实际上仅在 PHP 脚本运行时才出现,而且由于它可能在一秒钟内完成,因此您将很难在它们存在的短时间内看到这些文件。

如上所述,它们也在/tmp,不是/home/thejob/tmp

于 2013-08-08T08:19:51.757 回答
0

在 Linux 系统上,以斜杠开头的文件名表示相对于根目录的路径,因此/tmp/phpFs1iE7将在该位置,而不是在/home/thejob/tmp/phpFs1iE7. 此外,临时文件可能会在脚本完成时被删除,因此可能需要sleep()在您查看文件时调用以使脚本暂停(如果您确实需要这样做)。如果您正试图找出您的脚本不工作的原因,那么var_dump(PATH_site.$this->uploadDir.$filename)这可能是一个很好的地方。

于 2013-08-08T08:27:54.280 回答