1

我让我的用户上传一个文本文件,然后由我的应用程序处理。处理完成后,我想将此文本文件的副本保存在我的服务器上的某个位置以供将来参考。目前,上传的文本文件保留在 PHP 临时文件夹中,直到它被我的应用程序关闭。

有什么简单的方法可以做到这一点?

顺便说一句,我需要知道如何在我的网络服务器上执行此操作以及 localhost(用于测试)。

4

2 回答 2

3

您可以使用fwrite函数(尽管在这个特定示例中这可能不是一个好主意。

$fp = fopen('data.txt', 'w');
fwrite($fp, $yourContents);
fclose($fp);

但是,如果您已经拥有该文件,只需使用复制命令将其复制(如果您想将其保存在临时文件夹中,即如果不使用重命名功能移动它)。

复制,请执行以下操作

$tempfile = 'tempfile.txt';
$newfile = 'newfile.txt';

if (copy($tempfile, $newfile)) {
    echo "success!";
} else {
    echo "misery :(";
}

重命名移动

// Rename returns a bool, just as in the copy example
rename("/tmp/tempfile.txt", "/home/user/files/newfile.txt");

添加了这个:使用move_uploaded_file移动

请注意,我没有在开发环境中对此进行测试。这可能无法完美执行。

$uploads_dir = 'C:\\movefiles\\here\\';
foreach ($_FILES["upload-tracking-file"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["upload-tracking-file"]["tmp_name"][$key];
        $name = $_FILES["upload-tracking-file"]["name"][$key];
        move_uploaded_file($tmp_name, "$uploads_dir\\$name");
    }
}

参考

于 2012-07-21T18:46:33.413 回答
0

使用 php 的函数 ob_start() 和 file_put_contents() 这应该对你有所帮助。如果不发布您的回复,此链接将对您有所帮助 php.net/manual/en/function.ob-start.php, php.net/manual/en/function.file-put-contents.php

于 2012-07-21T18:45:30.030 回答