2012-07-21 170 views
1

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

完成此操作的简单方法是什么?

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

+2

['move_uploaded_file()'](http://php.net/manual/en/function.move-uploaded-file.php),也许? – Adi 2012-07-21 18:45:20

+0

我想现在在localhost上测试这个,有关如何做这些的任何示例/建议? – FastTrack 2012-07-21 19:14:29

回答

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

参考

+0

谢谢!我正在尝试使用'rename'函数(现在在localhost上测试),它看起来像是在遍历我的代码时,这是执行移动之前上传的文本文件的位置/名称:'C:\ WAMP \ tmp目录\ php96E1.tmp'。正如你所看到的,它看起来并不像它最初有一个'.txt'扩展名。我通过这样做了:'$ varStoredIn = $ _FILES [“upload-tracking-file”] [“tmp_name”];'我做错了什么? – FastTrack 2012-07-21 19:02:26

+0

如果你想要像这样移动它,你应该使用Adnan建议的move_uploaded_file,我会扩展我的例子。 – 2012-07-21 19:21:48

0

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

相关问题