将上载的文本文件保存到Web服务器


Save Uploaded Text File to Web Server

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

实现这一点的简单方法是什么?

顺便说一句,我需要知道如何在我的web服务器和localhost上做到这一点(用于测试)。

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

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

但是,如果你已经有了文件,只需使用copy命令复制它(如果你想把它保存在临时文件夹中,也就是说,如果不使用rename函数移动它)。

复制,请执行类似的操作

$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");
    }
}

参考

  • 复制,http://php.net/manual/en/function.copy.php
  • 移动(重命名),http://php.net/manual/en/function.rename.php
  • move_uploaded_file,http://php.net/manual/en/function.move-uploaded-file.php
  • fwrite,http://php.net/manual/en/function.fwrite.php

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