我有一个应用程序,允许用户通过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();
}
});
答案 0 :(得分:2)
您的上传部分存在问题。这条线
var file = fileInput.files[0];
将文件对象分配到file
变量中。稍后,当您将其添加到
"point_of_contact_attachment="
它被转换为字符串。所以你会有
“point_of_contact_attachment = [object file]”
就是这样。
答案 1 :(得分:-1)
尝试将浏览器直接指向文件而不是使用ajax。 喜欢这个
document.location = point-of-contact.php?page=attachment&row='+rowid;
由于它不是浏览器可以读取的文件,因此只需下载即可。
但是你仍然需要通过ajax获取TXT,因为document.location会将用户重定向到纯文本页面。