2017-09-25 12 views
-1

.datファイルをアップロードしようとしていますが、ファイル内のコンテンツを取得してjsonに保存したいとします。php - jsonに保存する.datファイルをアップロードする

私はこのコードを持っている:私は自分のサーバーにファイルをアップロードしようとしていないのです

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

ですか: 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私はそれの中のデータを取得し、それをjsonに格納しようとしています。

+0

フォームに必要な 'enctype'属性を指定しなかったため、実際のファイルはアップロードされませんでしたが、ファイル名のみがアップロードされました。 – CBroe

+0

フォームに 'enctype =" multipart/form-data "を追加しました。どうすれば実際のファイルをアップロードできますか? –

+0

これは、クライアント側でファイルアップロード用に必要なものです。物事はまだどこかで間違っているかもしれません - まず、$ _FILESの中でエラーが報告されているかどうかを確認する必要があります。 (方法がわからない場合は、HTTPファイルのアップロードに関するPHPのマニュアルの章を読んでください。 – CBroe

答えて

0

ファイルをアップロードすると、ファイルが定義された一時ディレクトリに保存されます。そこから、ファイルを目的の場所に移動するか、ファイルをその場所から取得することができます。あなたの場合、単に "名前"の代わりに "tmp_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> 
関連する問題