欢迎,
我对 jQuery-File-Upload 有疑问。我将插件与 MySQL 集成 -> https://github.com/blueimp/jQuery-File-Upload/wiki/PHP-MySQL-database-integration当我将文件添加到数据库中时,添加了记录:name file, id_user, active...
添加的很好。
加载我的网站时,加载的是列表上传的文件:https://stackoverflow.com/a/15448692/2788495
我只想加载当前加载所有的用户文件。
jQuery 代码:
$.ajax({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: $('#fileupload').fileupload('option', 'url'),
dataType: 'json',
context: $('#fileupload')[0],
formData:{
user: '<?php echo $objSession->e_ident ?>'
}
}).done(function (result) {
$(this).fileupload('option', 'done')
.call(this, null, {result: result});
});
PHP:
protected function handle_form_data($file, $index) {
$file->title = @$_REQUEST['title'][$index];
$file->description = @$_REQUEST['description'][$index];
$file->user=@$_REQUEST['user'];
}
protected function set_additional_file_properties($file) {
parent::set_additional_file_properties($file);
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$sql = 'SELECT `id`,`user_id` FROM `'
.$this->options['db_table'].'` WHERE `name`=? and user_id=?';
$query = $this->db->prepare($sql);
$query->bind_param('ss', $file->name, $file->user);
$query->execute();
$query->bind_result(
$id,
$user
);
while ($query->fetch()) {
$file->id = $id;
$file->user=$user;
}
}
}
在 JSON 中,没有选项:“id”和“user”。
最佳答案
不知道我理解的对不对
我相信您要显示其上传文件的用户已通过 session 登录到您的系统,是吗?
这个“$objSession->e_ident”有用户id。
如果我是对的,你应该删除这个:
"user: '<?php echo $objSession->e_ident ?>'"
从 ajax 请求中,用户 id 之类的东西应该只在服务器 session 文件中,而不是在页面上。
您应该将用户 ID 直接放在查询绑定(bind)上,如下所示:
$query->bind_param('ss', $file->name, $objSession->e_ident);
现在您的问题是,您的查询看起来是正确的,$objSession->e_ident 是否真的为用户提供了正确的 ID?
到数据库中 user_id 列有哪些值?
关于php - jQuery-File-Upload mysql select 显示所有文件,而不仅仅是用户的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25283699/