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 请求接收到的数据时,我得到以下信息:

在此处输入图像描述

如何以简单文本格式获取数据?

难道是我将文件上传到数据库的方式不正确?这是文件上传到数据库的方式:

    //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;

由于它不是浏览器可以读取的文件,它只会下载它。

但是,您仍然需要通过 ajax 获取 TXT,因为 document.location 会将用户重定向到纯文本页面。

于 2012-08-26T23:32:17.323 回答