![](/img/trans.png)
[英]Converting file upload to binary, post to server and save file using PHP
[英]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.