我有我的用戶上傳一個文本文件,然後由我的應用程序處理。處理完成後,我想將此文本文件的副本保存在我的服務器上以備將來參考。目前,上傳的文本文件保留在PHP臨時文件夾中,直到它被我的應用程序關閉。保存已上傳的文本文件到Web服務器
完成此操作的簡單方法是什麼?
順便說一句,我需要知道如何在我的web服務器上與localhost(用於測試)一起執行此操作。
我有我的用戶上傳一個文本文件,然後由我的應用程序處理。處理完成後,我想將此文本文件的副本保存在我的服務器上以備將來參考。目前,上傳的文本文件保留在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