2010-07-01 32 views
0

我正在使用我的php頁面上的csv導入選項。有沒有辦法允許用戶上傳一個csv進行處理,然後在文件完成時銷燬該文件?我看過很多關於上傳文件的教程,但似乎沒有提到這樣的東西。如何讓用戶臨時上傳文件?

回答

0

當你上傳一個文件到PHP它存儲在一個臨時位置,你可以從那裏移動到一個工作目錄,做你的處理,然後將其刪除。

$working_file = "/temporary/file"; 
move_uploaded_file($_FILES["file"]["tmp_name"], $working_file); 
... // Do your processing on $working_file 
unlink($working_file); 

所有你需要做的就是unlink()它會在你完成處理後刪除它。

欲瞭解更多信息,上傳文件看到:
http://php.net/manual/en/function.move-uploaded-file.php
http://www.w3schools.com/PHP/php_file_upload.asp

+0

Awww ...我確定這在大多數情況下都能正常工作,但我總是不願意直接在temp目錄下工作,並在那裏刪除文件。只是一種直覺而已 - 它可能是沒有根據的。 – 2010-07-01 19:04:32

+0

我意識到,只要我發佈它,我已經用move_uploaded_file()更新了我的示例。 – JustJohn 2010-07-01 19:06:29

1

當然!取一個上傳腳本,並在完成後輸入unlink()這個文件。沒有什麼。

不過,不要直接處理臨時文件。總是move_uploaded_file()它到您控制的目錄。然後,在那裏刪除它。

+0

+1如果你有一個開放的文件句柄到臨時文件第一,然後斷開鏈接將工作。 – 2010-07-01 19:02:13

+0

@tim yup,但是你不需要打開文件句柄嗎?然而,它需要'fclose()'d,如果你對它做了任何以前的操作,那麼好點。 – 2010-07-01 19:03:01

+0

@Pekka我的印象是,linux會立即刪除文件,除非至少有一個打開的文件指針。取消鏈接將確保沒有其他進程可以打開文件,儘管這使得取消鏈接成爲一個很好的選擇。 – 2010-07-01 19:06:56

相關問題