1

私は今Jqueryに頭を悩ませていますが、テキストエリアをtxtファイルに保存したいと思っています。最終的な目標は、テキスト ファイルを同じ場所にアップロードできるようにすることです。私のコードには何が欠けていますか?

このコードで textarea を定義している場所がわかりませんか、別のファイルにする必要があるのか​​、それとも html ファイルに php の接尾辞を付ける必要があるのか​​ わかりませんか?

以下の乾杯は、phpでの私の試みです。

コード

<?php
    if(isset($_POST['submit_save'])) {
        $file = "output.txt";
        $output = $_POST['output_str'];
        file_put_contents($file, $output);
        $text = file_get_contents($file);

        header("Content-type: application/text");
        header("Content-Disposition: attachment; filename=\"$file\"");
        echo $text; 
    }  
    else 
    {    
        $_POST['output_str'] = "";
    }
?>

</head>

<body>
    <input id="submit_save" type="button" value="save" />
    </br></br></br>
    <div id="opt"></div>
</body>
</html>
4

4 に答える 4

2

$_POSTは名前用です。名前を追加する必要があります#submit_save

<input name="submit_save" id="submit_save" type="button" value="save" />
于 2013-01-11T13:53:09.380 に答える
0

このようなことを試みていると思います。

<?php

  if(isset($_POST['textfield'])) {
    $file = "output.txt";
    $output = htmlspecialchars ($_POST['textfield'] );
    file_put_contents($file, $output );
    $text = file_get_contents($file);

    header("Content-type: application/text");
    header("Content-Disposition: attachment; filename=\"$file\"");
    echo $text;
    exit;

  }
?>

<html>
<head>
    <title>Your app</title>
</head>

<body>
  <form method="POST">
    <textarea name="textfield"></textarea>
    <input id="submit_save" type="button" value="save" />
  </form>

</body>
</html>
于 2013-01-11T14:10:48.377 に答える
0

readfile 関数を使用し、ファイルが破損しないように「終了」することを忘れないでください。Enveが言ったように、POST配列キーはhtmlの「名前」です。

man ページの例を次に示します。

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}

ソース: http://php.net/manual/en/function.readfile.php

于 2013-01-11T13:55:31.567 に答える
0

PHP スクリプトは、ブラウザーではなく、Web サーバー上で実行されます。スクリプトの結果は、ブラウザが受け取るものです!

あなたの質問を読むとき、入力されたデータ (テキスト領域の) をファイルまたはHTML ページとしてブラウザーに送信するかどうか (私には) 明確ではありません。両方が必要なようですが、それは不可能です。どちらかを選択してください。

Fab Saは、PHP からブラウザーにファイルを送信する方法を既に示しているので、これについてはこれ以上説明しません。

HTML ページのテキスト領域に入力したデータを入力するには、<textarea>HTML に -tag を追加する必要があります<form>。このようなもの:

<form method="post" action="<?= $PHP_SELF ?>">
<textarea name="output_str"><?= $_POST['output_str'] ?></textarea>
<input id="submit_save" name="submit_save" type="button" value="save" />
</form>

そして、コードのこの部分を削除します (データを部分的にファイルとして送信します)。

    $text = file_get_contents($file);
    header("Content-type: application/text");
    header("Content-Disposition: attachment; filename=\"$file\"");
    echo $text; 

注:安全上の理由から、サニタイズせずに使用しないでください(明確にするために、例では省略しました)。$_POST['output_str']

于 2013-01-11T14:04:24.103 に答える