簡體   English   中英

php FILE POST上傳沒有保存

[英]php FILE POST upload without save

我在PhP腳本中使用純文本文件。 有沒有辦法在PhP腳本中處理文件而不在本地保存? 我到處都看到只是上傳文件並保存。 我只需要從文件中提取一些名稱並完成它。 如果我使用文件的本地副本,我有其他一切工作,所以保存它,然后刪除它的工作原理。 我只是想知道是否有辦法跳過保存副本並直接獲取該信息。

我們在這里上傳文件。

<html>
<body>
    <form action="test.php" method="post" enctype="multipart/form-data">
        <label for="file">Filename:</label><input type="file" name="file" id="file" /> <br />
        <input type="submit" name="submit" value="Submit" />
    </form>
</body>
</html>

並且在腳本中使用本地保存的文件副本,我只是使用

$file = fopen($_FILES['file']['name'], "r");

如果它的文本文件(假設大小不是那么大)通常你可以讀它

$contents= file_get_contents($_FILES['file']['tmp_name']);

如果您不確定它的上傳類型,請檢查請求方法

if(strtolower($_SERVER['REQUEST_METHOD'])=='post')
    $contents= file_get_contents($_FILES['file']['tmp_name']);
elseif(strtolower($_SERVER['REQUEST_METHOD'])=='put')
    $contents= file_get_contents("php://input");
else
    $contents="";

提交表單時,請檢查$_FILES['input_name']['tmp_name']屬性。 這是保存在臨時/tmp系統路徑中的文件的路徑。 您可以使用file_get_contents()繼續讀取名稱,然后只是忘記該文件。 系統將負責刪除它。


只是為了脫離其他答案,理論上你可以在不使用JavaScript上傳文件的情況下閱讀文件,參見http://www.html5rocks.com/en/tutorials/file/dndfiles/ 然后僅提交您需要的數據作為AJAX請求的一部分。

在這種情況下讀取文件是臨時目錄之前,必須將文件保存在某處; 您可以從臨時目錄中獲取文件的內容,然后如果您確實需要刪除。 請參閱以下代碼:

$file = file_get_contents($_FILES["ufiley"]["tmp_name"]);

unlink($_FILES["ufiley"]["tmp_name"]); 

//contents would be stored in $file

上傳文件時,在本地保存文件之前,它會保存到臨時文件中。 其位置可通過以下方式訪問:

$_FILES['uploadedfile']['tmp_name'] 

您可以選擇不保存文件和fopen()臨時文件,只要您在收到POST的同一腳本中執行此操作即可。

不,它必須保存才能被讀取,我通常的常規與你的相同,上傳,閱讀和刪除。

你可以使用$_FILES["file"]["tmp_name"] ,這將是上傳的臨時文件。 一旦腳本運行完畢,PHP甚至應該自行清理並刪除臨時文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM