1

ユーザーが Web インターフェイスを介してテキスト データを MYSQL データベースに保存できるアプリケーションがあります。さらに、このテキストにファイルを添付することもでき、これを blob フィールドに保存します。添付されるファイルの種類は、単純な .txt ファイルです。

このデータをデータベースに保存することはできますが、取得できません。これは私が今それを取得するために行っていることです:

//Events that take place when trying to retreive an attached file
function getFile(rowid){

    //Make an AJAX Request to fetch the file
    $.ajax({
        type: 'get',
        url: 'point-of-contact.php',
        data: 'page=attachment&row='+rowid,
        dataType: 'text',
        success: function(data) {
                console.log (data);
        }
    });
}

上記の AJAX リクエストは、次の PHP コードにつながります。

$attachments = $poc -> getPOC($_GET['row']);
header('Content-type: text/plain');
echo $attachments;

私が直面している問題は、AJAX リクエストから受信したデータをコンソール ログに記録すると、次のようになることです。

ここに画像の説明を入力

単純なテキスト形式でデータを取得するにはどうすればよいですか?

ファイルをデータベースにアップロードする方法が間違っている可能性がありますか? これは、ファイルが DB にアップロードされる方法です。

    //File upload code
    var fileInput = document.getElementById('upload');
    var file = fileInput.files[0];

    //Hide the save button
    $("#save-button-1").hide(); 

    //Make the AJAX request
    $.ajax({
        type: 'post',
        url: 'point-of-contact.php?page=add',
        data: 'point_of_contact=' + $("#textarea1").val() + '&point_of_contact_attachment=' + file,
        success: function(data) {
            $('#done-1').show();
            setTimeout(function() {
                $('#done-1').fadeOut();
            }, 2500);
                $('.loader').fadeOut();
        }
    });
4

2 に答える 2

2

アップロード セクションに問題があります。この線

var file = fileInput.files[0];

ファイル オブジェクトをfile変数に割り当てます。後で追加すると、

"point_of_contact_attachment="

文字列に変換されます。だからあなたは持っているでしょう

"point_of_contact_attachment=[オブジェクトファイル]"

それだけです。

于 2012-08-27T00:31:56.420 に答える
-1

ajax を使用する代わりに、ブラウザでファイルを直接指定してみてください。このような

document.location = point-of-contact.php?page=attachment&row='+rowid;

ブラウザが読み取れるファイルではないため、ダウンロードするだけです。

ただし、document.location はユーザーをプレーン テキスト ページにリダイレクトするため、ajax 経由で TXT を取得する必要があります。

于 2012-08-26T23:32:17.323 に答える