Php jquery.filer删除已上载的文件
我对jquery.filer有问题Php jquery.filer删除已上载的文件,php,jquery,file-upload,upload,Php,Jquery,File Upload,Upload,我对jquery.filer有问题 $(document).ready(function() { $('#filer_input').filer({ showThumbs: true, templates: { box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>', item: '<li
$(document).ready(function() {
$('#filer_input').filer({
showThumbs: true,
templates: {
box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>',
item: '<li class="jFiler-item">\
<div class="jFiler-item-container">\
<div class="jFiler-item-inner">\
<div class="jFiler-item-thumb">\
<div class="jFiler-item-status"></div>\
<div class="jFiler-item-info">\
<span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\
<span class="jFiler-item-others">{{fi-size2}}</span>\
</div>\
{{fi-image}}\
</div>\
<div class="jFiler-item-assets jFiler-row">\
<ul class="list-inline pull-left"></ul>\
<ul class="list-inline pull-right">\
<li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
</ul>\
</div>\
</div>\
</div>\
</li>',
itemAppend: '<li class="jFiler-item">\
<div class="jFiler-item-container">\
<div class="jFiler-item-inner">\
<div class="jFiler-item-thumb">\
<div class="jFiler-item-status"></div>\
<div class="jFiler-item-info">\
<span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\
<span class="jFiler-item-others">{{fi-size2}}</span>\
</div>\
{{fi-image}}\
</div>\
<div class="jFiler-item-assets jFiler-row">\
<ul class="list-inline pull-left">\
<li><span class="jFiler-item-others">{{fi-icon}}</span><span class="jFiler-item-others">{{fi-size2}}</span></li>\
</ul>\
<ul class="list-inline pull-right">\
<li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
</ul>\
</div>\
</div>\
</div>\
</li>',
itemAppendToEnd: false,
removeConfirmation: true,
_selectors: {
list: '.jFiler-items-list',
item: '.jFiler-item',
remove: '.jFiler-item-trash-action'
}
},
addMore: true,
limit:8,
maxSize:2,
extensions: ['jpg','gif','png'],
files: [
<?php
$path=SITEBASE.'uploads/';
$i = 1;
foreach (unserialize($input['gallery']) as $key => $photo) : ?>
{
name: "photo<?=$i?>.jpg",
size: <?=filesize(UPLOAD.$photo)?>,
type: "image/jpg",
file: "<?=$path.$photo?>"
},
<?php
$i++;
endforeach; ?>
]
});
});
$(文档).ready(函数(){
$(“#文件管理器_输入”)。文件管理器({
秀拇指:没错,
模板:{
框:“
”,
项目:'\
\
\
\
\
\
{{fi name | limito:25}}\
{{fi-size2}}\
\
{{fi image}}\
\
\
\
\
\
\
\
\
\
',
itemAppend:“\
\
\
\
\
\
{{fi name | limito:25}}\
{{fi-size2}}\
\
{{fi image}}\
\
\
\
- {{fi icon}{{fi-size2}}
\
\
\
\
\
\
\
\
',
itemAppendToEnd:false,
Remove确认:正确,
_选择器:{
列表:'.jFiler项目列表',
项目:'.jFiler项目',
删除:'.jFiler项垃圾操作'
}
},
艾德莫尔:没错,
限额:8,
最大尺寸:2,
扩展名:['jpg'、'gif'、'png'],
档案:[
{
名称:“photo.jpg”,
尺寸:,
键入:“image/jpg”,
档案:“
},
]
});
});
这是我的文件服务器的“配置”
<form name="photoform" method="post" action="" enctype="multipart/form-data">
<input type="file" name="files[]" id="filer_input" multiple="multiple">
<input type="submit" name="photoformuploadphoto" value="SEND" />
</form>
现在,在结果中,一切都完美地显示出来。
所有已经上传的图片都会显示在网站上
我尝试上传新文件并添加到数据库中
$uploader = new Uploader();
$data = $uploader->upload($_FILES['files'], array(
'limit' => 8, //Maximum Limit of files. {null, Number}
'maxSize' => 2, //Maximum Size of files {null, Number(in MB's)}
'extensions' => array('jpg', 'png', 'gif'), //Whitelist for file extension. {null, Array(ex: array('jpg', 'png'))}
'required' => false, //Minimum one file is required for upload {Boolean}
'uploadDir' => UPLOAD, //Upload directory {String}
'title' => array('auto', 30), //New file name {null, String, Array} *please read documentation in README.md
'removeFiles' => true, //Enable file exclusion {Boolean(extra for jQuery.filer), String($_POST field name containing json data with file names)}
'onRemove' => 'onFilesRemoveCallback' //A callback function name to be called by removing files (must return an array) | ($removed_files) | Callback
));
if($data['isComplete']){
$files = $data['data'];
foreach($files["metas"] as $value){
$gallery[]=$value["name"];
imageResize($value["file"], UPLOAD.'thumb/'.$value["name"], '190', '114', 0);
}
$sql_update="UPDATE `".PREFIX."users` SET `gallery`='".serialize($gallery)."' WHERE `id`=".$_POST["id"];
query($sql_update);
// echo '<pre>';print_r($files);echo '</pre>';
}
if($data['hasErrors']){
$errors = $data['errors'];
//print_r($errors);
}
function onFilesRemoveCallback($removed_files){
foreach($removed_files as $key=>$value){
$file = UPLOAD . $value;
$thumb = UPLOAD.'thumb/' . $value;
if(file_exists($file)){
unlink($file);
}
if(file_exists($thumb)){
unlink($thumb);
}
}
return $removed_files;
}
$uploader=newuploader();
$data=$uploader->upload($\u文件['FILES'],数组(
'limit'=>8,//文件的最大限制。{null,Number}
'maxSize'=>2,//文件的最大大小{null,数字(MB)}
'extensions'=>array('jpg','png','gif'),//文件扩展名的白名单。{null,array(例如:array('jpg','png'))}
'required'=>false,//上传{Boolean}至少需要一个文件
'uploadDir'=>UPLOAD,//上传目录{String}
'title'=>array('auto',30),//新文件名{null,String,array}*请阅读README.md中的文档
'removeFiles'=>true,//启用文件排除{Boolean(jQuery.filer的额外值),字符串($\u包含有文件名的json数据的POST字段名)}
'onRemove'=>'OnFileRemoveCallback'//要通过删除文件(必须返回数组)|($removed_files)|回调调用的回调函数名
));
如果($data['isComplete'])){
$files=$data['data'];
foreach($files[“metas”]作为$value){
$gallery[]=$value[“name”];
imageResize($value[“file”],UPLOAD.thumb/。$value[“name”],'190','114',0);
}
$sql\u update=“update`.”前缀。“用户`SET`gallery`='.”。序列化($gallery)。“'WHERE`id`=”$\u POST[“id”];
查询($sql\u更新);
//回显“”;打印($files);回显“”;
$db_images = $db_row['images']; //only example
if($data['isComplete']){
$files = $data['data'];
foreach($files["files"] as $value){
$db_images[] = $value;
}
}
// now $db_images is ready
// write your query to update
}
如果($data['hasErrors'])){
$errors=$data['errors'];
//打印错误($errors);
}
函数onFileRemoveCallback($removed\u文件){
foreach($key=>$value形式的已删除\u文件){
$file=上传。$value;
$thumb=UPLOAD.thumb/。$value;
如果(文件_存在($file)){
取消链接($文件);
}
如果(文件_存在($thumb)){
取消链接($thumb);
}
}
返回$removed_文件;
}
不幸的是,$files=$data['data']只返回新上传的文件。
这意味着我已经上传的文件将被删除
你知道怎么解决吗?你需要:
1.从数组中的mysql获取旧文件
2.将上载的文件添加到旧文件中