2017-09-25 44 views
-1

我想上傳.dat文件,我想獲取文件內的內容,並在JSON中。php - 上傳.dat文件存儲在JSON

我有這樣的代碼: HTML:

<from action="upload.php" method="post" enctype="multipart/form-data"> 
     <input type="file" name="fileUpload"> 
     <button type="submit" name"btnSubmit">Upload</button> 
</form> 

PHP:

If(isset($_POST["btnSubmit"])) { 
     $file = file_get_contents($_FILES["fileUpload"]["name"], true); 
     $r = json_encode($file); 
} 

我得到的錯誤是file_get_contents("fileName.dat"): failed to open stream

我並不是想將文件上傳到我的服務器或一個文件夾,我試圖獲取它裏面的數據並將其存儲到json中。

+0

您沒有上傳任何實際的文件,而只是文件名 - 因爲您忽略在表單上放置必要的'enctype'屬性。 – CBroe

+0

我已經將'enctype =「multipart/form-data」'添加到了表單中..我如何上傳實際文件? –

+0

這就是您在客戶端需要的一個文件上傳表單。事情可能在其他地方仍然出錯 - 所以首先應該檢查$ _FILES內是否報告了錯誤。 (如果你不知道如何,那麼請閱讀關於HTTP文件上傳的PHP手冊章節,它解釋了它。) – CBroe

回答

0

文件上傳會將文件保存在php定義的臨時目錄中。從那裏你可以將文件移動到所需的位置,或從中獲取內容。在你的情況下,你可以簡單地通過使用「tmp_name」而不是「name」來獲取內容。

未來,您必須確保您的表單中已設置enctype。

<?php 
// check if file is given 
if(!empty($_FILES)) { 
     // get file from temporary upload dir 
     $file = file_get_contents($_FILES["fileUpload"]["tmp_name"], true); 
     $r = json_encode($file); 
     // show restult 
     var_dump($r); 
} 
?> 
<!-- add multipart --> 
<form action="" method="post" enctype="multipart/form-data"> 
     <input type="file" name="fileUpload"> 
     <button type="submit" name"btnSubmit">Upload</button> 
</form>