2012-07-21 222 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

相關問題