欢迎,
我遇到了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中,没有选项:&#34; id&#34;和&#34;用户&#34;。
答案 0 :(得分:0)
我不知道我是否理解你想做什么。
我相信您想要显示上传文件的用户是通过会话登录到您的系统的,是吗?
此“$ objSession-&gt; e_ident”具有用户ID。
如果我是对的,你应该删除它:
来自ajax请求的 "user: '<?php echo $objSession->e_ident ?>'"
,像用户ID这样的东西应该只在服务器会话文件中,而不是在页面上。
您应该将用户ID直接放在查询绑定上,如下所示:
$query->bind_param('ss', $file->name, $objSession->e_ident);
现在您的问题,您的查询看起来正确,是$ objSession-&gt; e_ident为用户提供了真正正确的ID?
进入user_id列有值的数据库?
答案 1 :(得分:0)
这不会奏效。它没有从数据库中读取文件列表。数据库用于捕获有关该文件的其他信息。它读取文件目录的内容。
解决方案是启用user_dirs。
更改第50行
'user_dirs' => false,
到
'user_dirs' => true,
我假设您已登录用户创建用户ID会话。第217行......
protected function get_user_id() {
@session_start();
return session_id();
}
将其更改为
protected function get_user_id() {
return $_SESSION['user_id'];
}
或者您的会话用户ID是什么。确保index.php上的会话在该页面上处于活动状态。
这样做是为了创建一个与用户的会话user_id同名的目录。所以他们只能看到该目录中的文件。