代码拉取完成,页面将自动刷新
<%@ page language="java" import="com.google.gson.Gson" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="net.sf.json.JSONObject" %>
<%@ page import="org.apache.commons.lang.StringUtils" %>
<%@ page import="up6.biz.PathBuilderUuid" %>
<%@ page import="up6.biz.WebSafe" %>
<%@ page import="up6.biz.up6_biz_event" %>
<%@ page import="up6.database.DBFile" %>
<%@ page import="up6.model.FileInf" %>
<%@ page import="up6.store.FileBlockWriter" %>
<%@ page import="up6.utils.ConfigReader" %>
<%@ page import="up6.utils.PathTool" %>
<%@ page import="up6.utils.WebBase" %>
<%@ page import="java.io.IOException" %>
<%@ page import="java.net.URLEncoder" %>
<%
out.clear();
/*
所有单个文件均以md5模式存储。
更新记录:
2023-05-19
新增lenLocSec,
新增encryptAgo
新增blockCrpType
新增blockSizeSec
取消路径加密
2017-07-13 取消生成id操作
2016-04-09 完善逻辑。
2015-07-30 取消文件夹层级结构存储规则,改为使用日期存储规则,文件夹层级结构仅保存在数据库中。
2016-01-07 返回值改为JSON
2012-06-29 增加创建文件逻辑,
2012-05-24 完善
*/
WebBase web = new WebBase(pageContext);
String id = web.queryString("id");
String md5 = web.queryString("md5");
String uid = web.queryString("uid");
String lenLoc = web.queryString("lenLoc"); //数字化的文件大小。12021
String sizeLoc = web.queryString("sizeLoc"); //格式化的文件大小。10MB
String blockSize = web.queryString("blockSize","5242880"); //块大小
int blockSizeSec = web.reqInt("blockSizeSec");//块加密大小
String token = web.queryString("token");
String callback = web.queryString("callback");
String pathLoc = web.reqStringDecode("pathLoc");
String encryptAgo = web.reqString("encryptAgo");
Long lenLocSec = web.reqLong("lenLocSec");//文件加密大小
//参数为空
if ( StringUtils.isBlank(md5)
&& StringUtils.isBlank(uid)
&& StringUtils.isBlank(sizeLoc))
{
out.write(callback + "({\"value\":null})");
return;
}
FileInf fileSvr= new FileInf();
fileSvr.id = id;
fileSvr.fdChild = false;
fileSvr.uid = uid;
fileSvr.nameLoc = PathTool.getName(pathLoc);
fileSvr.nameSvr = fileSvr.nameLoc;
fileSvr.pathLoc = pathLoc;
fileSvr.lenLoc = Long.parseLong(lenLoc);
fileSvr.lenLocSec = lenLocSec;//
fileSvr.sizeLoc = sizeLoc;
fileSvr.deleted = false;
fileSvr.md5 = md5;
fileSvr.blockSize = Integer.parseInt(blockSize);
fileSvr.blockSizeSec = blockSizeSec;
fileSvr.encrypt = ConfigReader.storageEncrypt(); //存储加密
fileSvr.encryptAgo = encryptAgo;//加密算法,sm4,aes
WebSafe ws = new WebSafe();
boolean ret = ws.validToken(token, fileSvr);
if(!ret)
{
String m = callback + "({\"value\":\"0\",\"ret\":false,\"error\":\"token error\"})";
out.write(m);
return;
}
//所有单个文件均以uuid/file方式存储
PathBuilderUuid pb = new PathBuilderUuid();
fileSvr.pathSvr = pb.genFile(fileSvr.uid,fileSvr);
fileSvr.pathSvr = fileSvr.pathSvr.replace("\\","/");
FileInf fileExist = DBFile.build().exist_file(md5);
//数据库已存在相同文件,且有上传进度,则直接使用此信息
if(fileExist!=null)
{
fileSvr.nameSvr = fileExist.nameSvr;
fileSvr.pathSvr = fileExist.pathSvr;
fileSvr.perSvr = fileExist.perSvr;
fileSvr.lenSvr = fileExist.lenSvr;
fileSvr.complete = fileExist.complete;
fileSvr.encrypt = fileExist.encrypt;
fileSvr.encryptAgo = fileExist.encryptAgo;
fileSvr.lenLoc = fileExist.lenLoc;
fileSvr.lenLocSec = fileExist.lenLocSec;
fileSvr.blockSize = fileExist.blockSize;
fileSvr.blockSizeSec = fileExist.blockSizeSec;
fileSvr.object_id = fileExist.object_id;
fileSvr.object_key = fileExist.object_key;
DBFile.build().Add(fileSvr);
//触发事件
up6_biz_event.file_create_same(fileSvr);
}//此文件不存在
else
{
try {
FileBlockWriter fw = ConfigReader.blockWriter();
fileSvr.object_id = fw.make(fileSvr);
fileSvr.object_key = fileSvr.ObjectKey();
} catch (IOException e) {
e.printStackTrace();
JSONObject obj = new JSONObject();
obj.put("value", "");
obj.put("error", e.getMessage());
obj.put("ret", false);
out.write(callback + "(" + obj.toString() + ")");
return;
}
DBFile.build().Add(fileSvr);
//触发事件
up6_biz_event.file_create(fileSvr);
}
//将路径转换成相对路径
fileSvr.pathSvr = pb.absToRel(fileSvr.pathSvr);
Gson gson = new Gson();
String json = gson.toJson(fileSvr);
json = URLEncoder.encode(json,"UTF-8");//编码,防止中文乱码
json = json.replace("+","%20");
json = callback + "({\"value\":\"" + json + "\",\"ret\":true})";//返回jsonp格式数据。
out.write(json);
%>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。