2017-09-27 10 views
-1

ファイルを読み込んだ後、そのコンテンツをテキストエリアにアップロードする必要がありますが、クライアントにファイルを選択させてもらうことはできますが、私はそれを行うことはありません。動的ファイルパスでPHP上でfopen関数を使用するにはどうすればよいですか?

私はすでに何か、コード、既にファイルを読み込み、それをアップロードし、しかし、その唯一の特定のルートで...

を持っているこれは私が持っているものです。

$file_name = 'C:/Users/Downloads/'.$doc_name; 
header("Content-Type: application/json"); 
$data = array(); 
$file = fopen($file_name, "r+") or exit ("Error trying to open the file.txt"); 
while ($linea = fgets($file)){ 
    if(feof($file)) break; 
    $data[]=$linea; 
} 
fclose($file); 
echo json_encode($data); 
+0

あなたは何をしたいですか?あなたのコードはファイルを開いてコンテンツをエコーし​​ますか? – Carson

+0

"しかし、私はクライアントにファイルを選択させます"と言うと、ユーザーは自分のコンピュータからブラウザのファイルを選択し、そのファイルの内容を現在のページのテキストエリアに表示しますか? –

答えて

0

私はドン」あなたの問題を理解しているかどうかは分かりません。 アップロードされたファイルの場所は常に把握しておく必要があります。すでにディレクトリがあり、そのディレクトリにファイルを追加する必要があります。または、ある条件に基づいてディレクトリを作成する場合は、PHP function mkdir()を使用できます。

ファイルがPOSTリクエストによってアップロード/送信されたと仮定します。

送信中にファイルをキャッチして、このようなことを行う必要があります。

<form action="uploadedFiles.php" method="post" enctype="multipart/form-data"> 
     Select file to upload: 
     <input type="file" name="fileToUpload" id="fileToUpload"> 
     <input type="submit" value="Upload File" name="submit"> 
    </form> 

$_FILES["fileToUpload"]["name"]

$target_dir = 'C:/Users/Downloads/'; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 

basename()を提出したファイルであるあなたのファイル名を取得する別のPHP関数

がない場合は、もう少し問題を特定しようと、それはあなたのお役に立てば幸いですもう少しコードを表示することもできます。

編集:また、セキュリティの問題を避けるために、ファイルのサイズと拡張子を確認する必要があります。

編集の編集:自分自身を明確にしなかった場合は、ファイル拡張子の「ホワイトリスト」/「ブラックリスト」に対してファイル拡張子をチェックし、アップロードを拒否または許可する必要があります。

+0

それは動作します!ありがとう!!! – Kurogani

+1

拡張機能を確認することで、セキュリティ上の問題は発生しません。 – jirigracik

関連する問題