保存已上传的文本文件到Web服务器
我有我的用户上传一个文本文件,然后由我的应用程序处理。处理完成后,我想将此文本文件的副本保存在我的服务器上以备将来参考。目前,上传的文本文件保留在PHP临时文件夹中,直到它被我的应用程序关闭。保存已上传的文本文件到Web服务器
完成此操作的简单方法是什么?
顺便说一句,我需要知道如何在我的web服务器上与localhost(用于测试)一起执行此操作。
你可以使用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");
}
}
参考
谢谢!我正在尝试使用'rename'函数(现在在localhost上测试),它看起来像是在遍历我的代码时,这是执行移动之前上传的文本文件的位置/名称:'C:\ WAMP \ tmp目录\ php96E1.tmp'。正如你所看到的,它看起来并不像它最初有一个'.txt'扩展名。我通过这样做了:'$ varStoredIn = $ _FILES [“upload-tracking-file”] [“tmp_name”];'我做错了什么? – FastTrack 2012-07-21 19:02:26
如果你想要像这样移动它,你应该使用Adnan建议的move_uploaded_file,我会扩展我的例子。 – 2012-07-21 19:21:48
使用php的函数ob_start()和file_put_contents()这应该对你有帮助。这个链接将帮助你,如果没有发布你的回复 php.net/manual/en/function.ob-start.php,php.net/manual/en/function.file-put-contents.php
['move_uploaded_file()'](http://php.net/manual/en/function.move-uploaded-file.php),也许? – Adi 2012-07-21 18:45:20
我想现在在localhost上测试这个,有关如何做这些的任何示例/建议? – FastTrack 2012-07-21 19:14:29