说明:
修复删除文件夹逻辑错误的问题
1.更新up6.js
更新前:
更新后:
代码:
, "RemoveFolder": function (fileSvr)
{
var ref = this;
var idSvr = fileSvr.idSvr;
var ui = this.filesUiMap[idSvr];
$.ajax({
type: "GET"
, dataType: 'jsonp'
, jsonp: "callback" //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
, url: this.Config["UrlFdDel"]
, data: { uid: fileSvr.uid, fid: fileSvr.idSvr,fd_id:fileSvr.fdID, time: new Date().getTime() }
, success:function (msg){if (msg == 1){ui.empty();}}
, error: function () { alert("发送删除文件信息失败!"); }
, complete: function (req, sta) { req = null; }
});
}
2.更新fd_del.jsp
更新前:
更新后:
更新后的代码:
<%@ page language="java" import="up6.*" pageEncoding="UTF-8"%><%@
page contentType="text/html;charset=UTF-8"%><%@
page import="org.apache.commons.lang.StringUtils" %><%
/*
此页面主要用来执行删除文件夹逻辑。
只修改数据库中文件夹状态。
更新记录:
2014-07-24 创建
*/
String path = request.getContextPath();
String fid = request.getParameter("fid");
String fd_id = request.getParameter("fd_id");
String uid = request.getParameter("uid");
String callback = request.getParameter("callback");//jsonp
int ret = 0;
//参数为空
if ( !StringUtils.isBlank(fid)
&& !StringUtils.isBlank(fd_id)
|| uid.length()>0 )
{
DBFolder.Remove(Integer.parseInt(fid),Integer.parseInt(fd_id), Integer.parseInt(uid));
ret = 1;
}
out.write(callback + "{("value":"+ret+")}");
%>
3.更新DBFolder.java
更新前:
更新后:
更新代码:
删除文件夹时仅更新文件标识,文件夹标识,同时更新所有子文件标识。
static public void Remove(int id_file,int id_folder,int uid)
{
StringBuilder sb = new StringBuilder();
sb.append("begin ");
sb.append("update up6_files set f_deleted=1 where f_idSvr=? and f_uid=?;");//更新文件表
sb.append("update up6_files set f_deleted=1 where f_pidRoot=? and f_uid=?;");//更新子文件
sb.append("update up6_folders set fd_delete=1 where fd_id=? and fd_uid=?;");//更新文件夹
sb.append(" end;");
DbHelper db = new DbHelper();
PreparedStatement cmd = db.GetCommand(sb.toString());
try
{
cmd.setInt(1, id_file);
cmd.setInt(2, uid);
cmd.setInt(3, id_folder);
cmd.setInt(4, uid);
cmd.setInt(5, id_folder);
cmd.setInt(6, uid);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.ExecuteNonQuery(cmd);
}