大佬教程收集整理的这篇文章主要介绍了php大文件(视频)分片上传,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class DbFolder
JSONObject root;
public DbFolder()
this.root.put("f_nameLoc", "根目录");
this.root.put("f_pidRoot", "");
/**
* 将JSONArray转换成map
* @param folders
* @return
*/
public Map<String, JSONObject> toDic(JSONArray folders)
Map<String, JSONObject> dt = new HashMap<String, JSONObject>();
for(int i = 0 , l = folders.size();i<l;++i)
JSONObject o = folders.getJSONObject(i);
String id = o.getString("f_id");
dt.put(id, o);
return dt;
public Map<String, JSONObject> foldersToDic(String pidRoot)
//默认加载根目录
String sql = String.format("SELEct f_id,f_nameLoc,f_pid,f_pidRoot from uP6_folders where f_pidRoot='%s'", pidRoot);
JSONArray folders = se.exec("uP6_folders", sql, "f_id,f_nameLoc,f_pid,f_pidRoot","");
public arrayList<JSONObject> sortByPid( Map<String, JSONObject> dt, String idCur, ArrayList<JSONObject> psort) {
String cur = idCur;
while (true)
if (!dt.containsKey(cur)) break;
JSONObject d = dt.get(cur);//查父ID
psort.add(0, d);//将父节点排在前面
cur = d.getString("f_pid").trim();//取父级ID
if ( StringUtils.isBlank(cur) ) break;
return psort;
public JSONArray build_path_by_id(JSONObject fdCur) {
String id = fdCur.getString("f_id").trim();//
String pidRoot = fdCur.getString("f_pidRoot").trim();//
arrayList<JSONObject> psort = new arrayList<JSONObject>();
return JSONArray.fromObject(psort);
Map<String, JSONObject> dt = this.foldersToDic(pidRoot);
psort = this.sortByPid(dt, id, psort);
//是子目录->添加根目录
if (!StringUtils.isBlank(pidRoot))
JSONObject root = se.read("uP6_files"
, "f_id,f_nameLoc,f_pid,f_pidRoot"
, new sqlParam[] { new sqlParam("f_id", pidRoot) });
psort.add(0, root);
}//是根目录->添加根目录
else if (!StringUtils.isBlank(id) && StringUtils.isBlank(pidRoot))
JSONObject root = se.read("uP6_files"
, "f_id,f_nameLoc,f_pid,f_pidRoot"
, new sqlParam[] { new sqlParam("f_id", id) });
psort.add(0, root);
return JSONArray.fromObject(psort);
public FileInf read(String id) {
String sql = String.format("SELEct f_pid,f_pidRoot,f_pathSvr from uP6_files where f_id='%s' union SELEct f_pid,f_pidRoot,f_pathSvr from uP6_folders where f_id='%s'", id,id);
JSONArray data = se.exec("uP6_files", sql, "f_pid,f_pidRoot,f_pathSvr","");
JSONObject o = (JSONObject)data.get(0);
FileInf file = new FileInf();
file.pid = o.getString("f_pid").trim();
file.pidRoot = o.getString("f_pidRoot").trim();
file.pathSvr = o.getString("f_pathSvr").trim();
return file;
public Boolean exist_same_file(String name,String pid)
sqlWhereMerge swm = new sqlWhereMerge();
swm.equal("f_nameLoc", name.trim());
swm.equal("f_pid", pid.trim());
String sql = String.format("SELEct f_id from uP6_files where %s ", swm.to_sql());
JSONArray arr = se.exec("uP6_files", sql, "f_id", "");
/**
* 检查是否存在同名目录
* @param NAME
* @param pid
* @return
*/
public Boolean exist_same_folder(String name,String pid)
sqlWhereMerge swm = new sqlWhereMerge();
swm.equal("f_nameLoc", name.trim());
swm.equal("LTRIM (f_pid)", pid.trim());
String sql = String.format("(SELEct f_id from uP6_files where %s ) union (SELEct f_id from uP6_folders where %s)", where,wherE);
JSONArray fid = se.exec("uP6_files", sql, "f_id", "");
return fid.size() > 0;
public Boolean rename_file_check(String newName,String pid)
JSONArray res = se.SELEct("uP6_files"
new sqlParam("f_nameLoc",newName)
,new sqlParam("f_pid",pid)
public Boolean rename_folder_check(String newName, String pid)
JSONArray res = se.SELEct("uP6_folders"
new sqlParam("f_nameLoc",newName)
,new sqlParam("f_pid",pid)
public void rename_file(String name,String id) {
, new sqlParam[] { new sqlParam("f_nameLoc", Name) }
, new sqlParam[] { new sqlParam("f_id", id) });
public void rename_folder(String name, String id, String pid) {
, new sqlParam[] { new sqlParam("f_nameLoc", Name) }
, new sqlParam[] { new sqlParam("f_id", id) });
}
1.在webuploader.js大概4880行代码左右,在动态生成的input组件的下面(也可以直接搜索input),增加webkitdirectory属性。
function FileUploader(fileLoc, mgr)
var _this = this;
this.id = fileLoc.id;
thiS.Ui = { msg: null, process: null, percent: null, btn: { del: null, cancel: null,post:null,stop:null }, div: null};
this.isFolder = false; //不是文件夹
this.app = mgr.app;
this.event = mgr.event;
this.fields = jQuery.extend({}, mgr.Config.Fields, fileLoc.fields);//每一个对象自带一个fields幅本
this.State = this.Config.state.None;
, f_fdTask: false
, f_fdChild: false
, complete: false
this.fileSvr = jQuery.extend(this.fileSvr, fileLoc);
2.可以获取路径
this.open_files =@R_963_3816@ (json)
for (var i = 0, l = json.files.length; i < l; ++i)
this.addFileLoc(json.files[i]);
setTimeout(function () { _this.PostFirst(); },500);
};
this.open_folders =@R_963_3816@ (json)
for (var i = 0, l = json.folders.length; i < l; ++i) {
this.addFolderLoc(json.folders[i]);
setTimeout(function () { _this.PostFirst(); }, 500);
};
this.paste_files =@R_963_3816@ (json)
for (var i = 0, l = json.files.length; i < l; ++i)
this.addFileLoc(json.files[i]);
};
后端代码逻辑大部分是相同的,目前能够支持MysqL,Oracle,sql。在使用前需要配置一下数据库,可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/07/java超大文件上传与下载/
可以入群一起讨论:374992201
以上是大佬教程为你收集整理的php大文件(视频)分片上传全部内容,希望文章能够帮你解决php大文件(视频)分片上传所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。