php解决大文件断点续传 – 泽优软件博客 http://blog.ncmem.com/wordpress 荆门泽优软件有限公司官方博客 Sun, 05 Jul 2026 09:18:24 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.7.5 php解决大文件断点续传 http://blog.ncmem.com/wordpress/2019/12/13/php%e8%a7%a3%e5%86%b3%e5%a4%a7%e6%96%87%e4%bb%b6%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 09:34:18 +0000 http://blog.ncmem.com/wordpress/?p=1593 继续阅读 php解决大文件断点续传]]> 相关资料:解决方案,白皮书,产品介绍,产品比较,开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,控件包,Windows控件安装,macOS控件安装,Linux-deb控件安装,Linux-rpm控件安装,安装引导,控件布署,控件升级,IE9加载控件,IE8加载控件,

示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)

教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6

视频教程:windows控件安装,mac控件安装,linux-deb控件包安装,linux-rpm控件包安装,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,ActiveX(x86)源码编译,ActiveX(x64)源码编译,Windows(npapi)源码编译,macOS源码编译,Linux(x86_64)源码编译,Linux(arm)源码编译,Linux(mips-uos)源码编译,Linux(mips-kylin-涉密环境)源码编译,sm4加密传输,压缩传输,

ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),

jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs

php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),

二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程

相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,

联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,

        

产品交流群:泽优Web大文件上传控件

视频教程:https://www.bilibili.com/video/BV1im4y117ht/?vd_source=d1843c7f8c164416779b5188178bad8c

 

版本:6.5.41

代码:https://gitee.com/xproer/up6-php/tree/6.5.41/

 

安装环境

PHP:7.2.14

调整块大小

 

NOSQL

NOSQL不需要任何配置,可以直接访问测试

 

SQL

创建数据库

您可以直接复制脚本进行创建

创建表

 

配置数据库连接

6.安装依赖

 

访问页面进行测试

 

数据表中的数据

相关参考:

文件保存位置

php5教程

免费下载产品源代码-泽优开源全平台大文件传输解决方案(up6-down2)

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

]]>
java解决大文件断点续传 http://blog.ncmem.com/wordpress/2019/12/13/java%e8%a7%a3%e5%86%b3%e5%a4%a7%e6%96%87%e4%bb%b6%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 08:29:45 +0000 http://blog.ncmem.com/wordpress/?p=1591 继续阅读 java解决大文件断点续传]]> 版权所有 2009-2023 荆门泽优软件有限公司

保留所有权利

相关资料:产品首页,白皮书,白皮书(图文版),产品介绍,产品比较,控件工程源代码,个人版报价单,政企版报价单,年费版报价单,OEM版报价单,开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,Linux-deb控件安装,Linux-rpm控件安装,安装引导,控件布署,控件升级,IE9加载控件,IE8加载控件,

解决方案:央企解决方案国防军工解决方案地产行业解决方案档案管理解决方案教育行业解决方案医疗行业解决方案工程管理解决方案企业文件传输解决方案

控件包:cab(x86)控件包,cab(x64)控件包,chrome(45-)控件包,firefox控件包,exe安装包,exe安装包(开机启动),集成包(up6+down2),macOS控件包,Linux-x86-deb安装包,Linux-x86-deb集成包(up6+down2),linux-x86-uos安装包,linux-x86-uos集成包(up6+down2),linux-x86-rpm安装包,linux-x86-rpm集成包(up6+down2),linux-arm-deb安装包,linux-arm-deb集成包(up6+down2),linux-arm-uos安装包,linux-arm-uos集成包(up6+down2),linux-arm-rpm安装包,linux-arm-rpm集成包(up6+down2),linux-mips-deb安装包,linux-mips-deb集成包(up6+down2),linux-mips-uos安装包,linux-mips-uos集成包(up6+down2),linux-mips-银河麒麟安装包,linux-mips-银河麒麟集成包(up6+down2)

示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)

教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6

视频教程:windows控件安装,mac控件安装,linux-deb控件包安装,linux-rpm控件包安装,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,ActiveX(x86)源码编译,ActiveX(x64)源码编译,Windows(npapi)源码编译,macOS源码编译,Linux(x86_64)源码编译,Linux(arm)源码编译,Linux(mips-uos)源码编译,Linux(mips-kylin-涉密环境)源码编译,sm4加密传输,压缩传输,

ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),

jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs

php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),

二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程

相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,

联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,
        

 

视频教程:https://www.bilibili.com/video/BV1uj411V75m/?vd_source=d1843c7f8c164416779b5188178bad8c

导入项目:
导入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
导入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
springboot统一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2

下载示例:

https://gitee.com/xproer/up6-jsp-eclipse

最新示例是6.5.39版本,下载时请注意选择最新分支。

 

工程

 

NOSQL

NOSQL示例不需要任何配置,可以直接访问测试

 

创建数据表

选择对应的数据表脚本,这里以SQL为例

 

修改数据库连接信息

访问页面进行测试

 

文件存储路径

up6/upload/年/月/日/guid/filename

 

 

相关问题:
1.javax.servlet.http.HttpServlet错误
2.项目无法发布到tomcat
3.md5计算完毕后卡住
4.服务器找不到config.json文件

相关参考:

文件保存位置

]]>
jsp解决大文件断点续传 http://blog.ncmem.com/wordpress/2019/12/13/jsp%e8%a7%a3%e5%86%b3%e5%a4%a7%e6%96%87%e4%bb%b6%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 07:15:31 +0000 http://blog.ncmem.com/wordpress/?p=1589 继续阅读 jsp解决大文件断点续传]]> 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。

这次项目的需求:

支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭浏览器后再打开)仍然能够继续上传,重启电脑后仍然能够上传

支持文件夹的上传,要求服务端能够保留层级结构,并且能够续传。需要支持10万个以上的文件夹上传。

支持低版本的系统和浏览器,因为这个项目的最终运行环境在政府,政府的配置都一般,职员都是办公用,内存都不大,基本上以Windows XP的系统为主。

 

1、介绍enctype

enctype 属性规定发送到服务器之前应该如何对表单数据进行编码。

enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用一样)

1、1 enctype的取值有三种

描述

application/x-www-form-urlencoded

在发送前编码所有字符(默认)

multipart/form-data

不对字符编码。每一个表单项分割为一个部件

text/plain

空格转换为 “+” 加号,但不对特殊字符编码。

1. 当enctype=’application/x-www-form-urlencoded’

2.当enctype=’multipart/form-data’

 

通过观察发现这个的请求体就发生了变化。这种请求体被称之为多部件请求体。

什么是多部件请求体:就是把每一个表单项分割为一个部件。

以请求头的content-type的boundary后面的一串随机字符串作为分割标识

普通表单项:

//name的意思是文本框里面name的属性值,而admin是我们输入的文本值

Content-Disposition: form-data; name=”username”

admin

文件表单项

//filename的意思是:我们上传的文件名称,content-Type的意思是:MIME类型,asdasdas的意思是:文件里面的内容

Content-Disposition: form-data; name=”upload”; filename=”a.txt”

Content-Type: text/plain

asdasdas

3. 当enctype=’text/plain’

 

w3c称:空格会变成”+”加号,但是我这里没有发现,只有当get请求的时候,空格会变成”+”号

 

进入正题

完成上传需要满足3个必要的条件

提供form表单,method必须是post,因为get请求的传输数据一般为2kb,不同浏览器不一样。

form表单属性enctype的必须是multipart/form-data

提供input type=”file”类的上传输入域

大致实现原理:当enctype的值是multipart/form-data时,浏览器会把每个表单项进行分割,分割成不同的部件,以boundary的值为分割标识,这个标识的字符串是随机生成的,最后一个表单项的分割标识字符串末尾会多两个”- -“,代表结束。服务端用request.getHeader(“content-type”)获取分割字符串,然后进行解析。

 

 

代码实现

一、开发环境搭建

准备两个第三方jar包

commons-io包

commons-upload包

所有依赖包

 

代码实现

<%@ page language=”java” import=”up6.DBFile” pageEncoding=”UTF-8″%>

<%@ page contentType=”text/html;charset=UTF-8″%>

<%@ page import=”up6.FileBlockWriter” %>

<%@ page import=”up6.XDebug” %>

<%@ page import=”up6.*” %>

<%@ page import=”up6.biz.*” %>

<%@ page import=”org.apache.commons.fileupload.FileItem” %>

<%@ page import=”org.apache.commons.fileupload.FileItemFactory” %>

<%@ page import=”org.apache.commons.fileupload.FileUploadException” %>

<%@ page import=”org.apache.commons.fileupload.disk.DiskFileItemFactory” %>

<%@ page import=”org.apache.commons.fileupload.servlet.ServletFileUpload” %>

<%@ page import=”org.apache.commons.lang.*” %>

<%@ page import=”java.net.URLDecoder”%>

<%@ page import=”java.util.Iterator”%>

<%@ page import=”net.sf.json.JSONObject”%>

<%@ page import=”java.util.List”%>

<%

out.clear();

String uid             = request.getHeader(“uid”);//

String id              = request.getHeader(“id”);

String lenSvr      = request.getHeader(“lenSvr”);

String lenLoc      = request.getHeader(“lenLoc”);

String blockOffset = request.getHeader(“blockOffset”);

String blockSize   = request.getHeader(“blockSize”);

String blockIndex  = request.getHeader(“blockIndex”);

String blockMd5        = request.getHeader(“blockMd5”);

String complete        = request.getHeader(“complete”);

String pathSvr         = “”;

 

//参数为空

if(  StringUtils.isBlank( uid )

     || StringUtils.isBlank( id )

     || StringUtils.isBlank( blockOffset ))

{

     XDebug.Output(“param is null”);return;

}

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

FileItemFactory factory = new DiskFileItemFactory();  

ServletFileUpload upload = new ServletFileUpload(factory);

List files = null;

try {files = upload.parseRequest(request);}

catch (FileUploadException e)

{out.println(“read file data error:” + e.toString());return;}

 

FileItem rangeFile = null;

Iterator fileItr = files.iterator();

while (fileItr.hasNext())

{

     rangeFile = (FileItem) fileItr.next();

     if(StringUtils.equals( rangeFile.getFieldName(),”pathSvr”))

     {

         pathSvr = rangeFile.getString();

         pathSvr = PathTool.url_decode(pathSvr);

     }

}

 

boolean verify = false;

String msg = “”;

String md5Svr = “”;

long blockSizeSvr = rangeFile.getSize();

if(!StringUtils.isBlank(blockMd5)){md5Svr = Md5Tool.fileToMD5(rangeFile.getInputStream());}

verify = Integer.parseInt(blockSize) == blockSizeSvr;

if(!verify){ msg = “block size error sizeSvr:” + blockSizeSvr + “sizeLoc:” + blockSize;}

if(verify && !StringUtils.isBlank(blockMd5))

{

     verify = md5Svr.equals(blockMd5); if(!verify) msg = “block md5 error”;

}

if(verify)

{

     FileBlockWriter res = new FileBlockWriter();

     if( Integer.parseInt(blockIndex)==1) res.CreateFile(pathSvr,Long.parseLong(lenLoc));

     res.write( Long.parseLong(blockOffset),pathSvr,rangeFile);

     up6_biz_event.file_post_block(id,Integer.parseInt(blockIndex));

    

     JSONObject o = new JSONObject();

     o.put(“msg”, “ok”);

     o.put(“md5”, md5Svr); 

     o.put(“offset”, blockOffset);

     msg = o.toString();

}

rangeFile.delete();

out.write(msg);

%>

下载的必须条件

两个头一个流

content-type

Content-Type是返回消息中非常重要的内容,表示文档内容属于什么MIME类型。

浏览器会根据Content-Type来决定如何显示返回的消息体内容。

默认值是text/html

可以使用request.getServletContext().getMimeType(“文件名”)获取MIME类型。

Content-Disposition

Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。

默认值是inline,表示在浏览器窗口中打开。

服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器 中显示。

如果需要提示用户保存,利用Content-Disposition进行一下处理,关键在于一定要加上attachment。

例如:Content-Disposition:attachment;filename=xxx,浏览器就会激活下载框对话框, attachment 表示附件, filname 后面跟随的是显示在下载框中的文件名称。

下载就是向客户端响应字节数据! 将一个文件变成字节数组, 使用 response.getOutputStream()

来响应给浏览器。

代码如下,此代码已经实现了断点续传功能,用户在下载过程可以暂停,和继续下载,对服务器造成的压力也比较小。

String fid             = request.getHeader(“id”);

String blockIndex = request.getHeader(“blockIndex”);//基于1

String blockOffset     = request.getHeader(“blockOffset”);//块偏移,相对于整个文件

String blockSize   = request.getHeader(“blockSize”);//块大小(当前需要下载的大小)

String pathSvr         = request.getHeader(“pathSvr”);//文件在服务器的位置

pathSvr            = PathTool.url_decode(pathSvr);

 

if (  StringUtils.isBlank(fid)

     ||StringUtils.isBlank(blockIndex)

     ||StringUtils.isEmpty(blockOffset)

     ||StringUtils.isBlank(blockSize)

     ||StringUtils.isBlank(pathSvr))

{

     response.setStatus(500);

     response.setHeader(“err”,”参数为空”);

     return;

}

File f = new File(pathSvr);

//文件不存在

if(!f.exists())

{

     response.setStatus(500);

     OutputStream os = response.getOutputStream();

     System.out.println(String.format(“%s 文件不存在”,pathSvr));

     os.close();

     return;

}

long fileLen = f.length();

 

response.setContentType(“application/x-download”);

response.setHeader(“Pragma”,”No-cache”); 

response.setHeader(“Cache-Control”,”no-cache”);

response.addHeader(“Content-Length”,blockSize); 

response.setDateHeader(“Expires”, 0);

 

OutputStream os = response.getOutputStream();

try

{

     RandomAccessFile raf = new RandomAccessFile(pathSvr,”r”);

    

     int readToLen = Integer.parseInt(blockSize);

     int readLen = 0;

     raf.seek( Long.parseLong(blockOffset) );//定位索引

     byte[] data = new byte[1048576];

    

     while( readToLen > 0 )

     {

         readLen = raf.read(data,0,Math.min(1048576,readToLen) );

         readToLen -= readLen;

         os.write(data, 0, readLen);

        

     }

     os.flush();

     os.close();  

     raf.close();

     os = null;

     response.flushBuffer();

    

     out.clear();

     out = pageContext.pushBody();

}

catch(Exception e)

{

     response.setStatus(500);

     os.close();

     out.close();

     e.printStackTrace();

}

finally

{   

     if(os != null)

     {

         os.close();       

         os = null;

     }

     out.clear();

     out = pageContext.pushBody();

}%>

 

加载文件列表,在下载列表中显示出来

后端代码逻辑大部分是相同的,目前能够支持MySQL,Oracle,SQL。在使用前需要配置一下数据库,可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/12/java-http%E5%A4%A7%E6%96%87%E4%BB%B6%E6%96%AD%E7%82%B9%E7%BB%AD%E4%BC%A0%E4%B8%8A%E4%BC%A0/

]]>
asp.net解决大文件断点续传 http://blog.ncmem.com/wordpress/2019/12/13/asp-net%e8%a7%a3%e5%86%b3%e5%a4%a7%e6%96%87%e4%bb%b6%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 06:28:31 +0000 http://blog.ncmem.com/wordpress/?p=1587 继续阅读 asp.net解决大文件断点续传]]>

相关资料:产品首页,控件包白皮书,白皮书(图文版),产品介绍,产品比较,控件源码文档,开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,Linux-deb控件安装,Linux-rpm控件安装,安装引导,控件布署,控件升级,IE9加载控件,IE8加载控件

解决方案:党政央企国防军工房地产档案管理教育医疗工程管理企业文件传输解决方案

标杆案例:中国港湾中国中车中国石油中国石化,长江电力中信证券上海通用一汽大众,沈阳自动化研究所,

示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)

教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6

视频教程:windows控件安装,mac控件安装,linux-deb控件包安装,linux-rpm控件包安装,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,ActiveX(x86)源码编译,ActiveX(x64)源码编译,Windows(npapi)源码编译,macOS源码编译,Linux(x86_64)源码编译,Linux(arm)源码编译,Linux(mips-uos)源码编译,Linux(mips-kylin-涉密环境)源码编译,sm4加密传输,压缩传输,jsp-eclipse-sm4加密存储,jsp-springboot-sm4加密存储,asp.net-sm4加密存储

ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),

jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs

php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),

二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程

相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,

联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,

       

产品交流群:泽优Web大文件上传控件

 

视频教程:https://www.ixigua.com/7200367234802418187

 

最新版本:6.5.41

在线代码:https://gitee.com/xproer/up6-asp-net/tree/6.5.41/



安装.NET Framework 4.7.2

  https://dotnet.microsoft.com/en-us/download/dotnet-framework/net472

框架选择4.7.2

 

添加3rd引用

 


编译项目

NOSQL

NOSQL无需任何配置可直接访问页面进行测试

SQL

使用IIS

大文件上传测试推荐使用IIS以获取更高性能。

使用IIS Express

小文件上传测试可以使用IIS Express

创建数据库

配置数据库连接信息


检查数据库配置

访问页面进行测试

 

相关参考:

文件保存位置

 

大文件上传控件(up6

个人版:http://www.ncmem.com/webapp/up6/purchase.aspx

政企版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=ent

年费版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=year

OEM版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=oem

源码版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=code

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

 

大文件上传下载控件(up6-down2

政企版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=ent

年费版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=year

OEM版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=oem

源码版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=code

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

]]> webuploader之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/13/webuploader%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 05:47:24 +0000 http://blog.ncmem.com/wordpress/?p=1585 继续阅读 webuploader之大文件分段上传、断点续传]]> 版权所有 2009-2023 荆门泽优软件有限公司

保留所有权利

相关资料:产品首页,白皮书,白皮书(图文版),产品介绍,产品比较,成功案例,基础组件,控件源代码,个人版报价单,年费版采购说明,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,Linux-deb控件安装,Linux-rpm控件安装,安装引导,控件布署,控件升级,IE9加载控件,IE8加载控件,

控件包:cab(x86)控件包,cab(x64)控件包,chrome(45-)控件包,firefox控件包,exe安装包,exe安装包(开机启动),集成包(up6+down2),macOS控件包,Linux-x86-deb安装包,Linux-x86-deb集成包(up6+down2),linux-x86-uos安装包,linux-x86-uos集成包(up6+down2),linux-x86-rpm安装包,linux-x86-rpm集成包(up6+down2),linux-arm-deb安装包,linux-arm-deb集成包(up6+down2),linux-arm-uos安装包,linux-arm-uos集成包(up6+down2),linux-arm-rpm安装包,linux-arm-rpm集成包(up6+down2),linux-mips-deb安装包,linux-mips-deb集成包(up6+down2),linux-mips-uos安装包,linux-mips-uos集成包(up6+down2),linux-mips-银河麒麟安装包,linux-mips-银河麒麟集成包(up6+down2)

示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)

教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6

视频教程:windows控件安装,mac控件安装,linux-deb控件包安装,linux-rpm控件包安装,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,ActiveX(x86)源码编译,ActiveX(x64)源码编译,Windows(npapi)源码编译,macOS源码编译,Linux(x86_64)源码编译,Linux(arm)源码编译,Linux(mips-uos)源码编译,Linux(mips-kylin-涉密环境)源码编译,sm4加密传输,压缩传输,

ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),

jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs

php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),

二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程

相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,

联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,

*QQ群:374992201 *微信:jmzyqwl

产品交流群:泽优Web大文件上传控件

视频教程:https://www.ixigua.com/7203177625634734625

代码:https://gitee.com/xproer/up6-vue-cli

 

1.引入up6组件

 

2.配置接口地址

接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表

参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de

 

3.定义事件

]]>
B/S之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/13/b-s%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 03:48:00 +0000 http://blog.ncmem.com/wordpress/?p=1583 继续阅读 B/S之大文件分段上传、断点续传]]> 4GB以上超大文件上传和断点续传服务器的实现

随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。

但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基本的上传功能,然而在实际使用中会发现,这些基于脚本语言实现的上传功能模块性能很弱,一是不支持2GB以上的内容上传;二是无法支持断点续传;三是效率极低,单台服务器最多支持几十个并发上传连接。

当前我们要搭建一个运营级的视频服务平台,在尝试了各种产品均无法满足要求,因此最后花精力自主用C++语言实现了这一高性能上传服务器。 

项目地址:

http://git://10.168.4.241/up6/web/asp.net.git

Hyper Upload Server 超级上传服务器 

这是一款超级文件上传服务器,采用异步I/O架构,采用C++语言编码实现。它支持4GB以上超大文件上传和断点续传,支持Windows和Linux服务器平台,支持任意格式的文件上传,尤其适合大的视频网站应用。单台服务器支持1000并发上传进程,支持PC端和智能手机端主流的浏览器。 

主要特性

1. 服务器端采用异步I/O架设设计,具有高性能I/O处理能力,尤其适用于超大文件上传;

2. 服务器端采用高效内存分配技术确保在运行过程中服务器的内存开销最小化;

3. 完全采用标准协议实现,因此兼容几乎所有的PC端和移动端浏览器;

4. 服务器端采用C++语言自主实现,对上传文件的尺寸无限制,天生支持超大文件上传。

   而基于PHP、JAVA等技术实现的文件上传服务天生无法支持超大文件上传,无法逾越2GB的最大文件尺寸瓶颈;

5. 服务器端采用无缓冲即时写入方式,上传数据写入一步到位。不同于PHP、JAVA等技术实现方式需要两步写入;

6. 服务器端可跨平台编译运行,支持Windows和Linux平台;

7. 高性能,单台服务器支持1000个并发上传进程;

8. 支持4GB以上超大文件上传,文件大小不受限制;

9. 客户端支持采用HTTP标准协议上传;

10.支持断点续传,断网、关机重启均不受影响;

11.支持HTML5浏览器上传进度实时显示;

12.支持IE8及以上浏览器上传进度显示;

13.支持查看客户端在线连接, 查看方法: http://ip:port/lists

14.多浏览器兼容,包括Chrome,Firefox,Safari,IE,Opera,Edge; 

安装 

第一步:解压文件到一个硬盘目录,例如d:\UploadServer 

第二步:修改配置文件

         修改d:\UploadServer\conf\config.xml,文件里的目录设置,

         将所有 dir= 变量指向的目录修改为硬盘上的真实目录,如果没有就按配置文件创建;       

第三步:安装服务

      执行cmd打开命令行窗口按步骤输入以下命令:

      d:  <br/>

      cd UploadServer

      HYFileServer.exe -i  

第四步:启动服务

    打开系统的服务管理器,找到Hyper Http Upload Service服务启动它。

第五步:在浏览器里输入 http://127.0.0.1:8080 查看服务器运行是否正常

    如果上传页面正常显示说明安装成功

    点击其中一个上传文件链接 按钮来上传一个文件。

    如果要在其它主机上访问上传服务器页面,请将127.0.0.1用安装服务器的IP地址取代。

    如果外部机器还不能访问,请检查防火墙的设置,看一下默认的8080端口是否开启。

     

第六步:如果要进一步了解上传服务器,请查看 d:\UploadServer\doc\文件上传服务器使用手册.pdf 文件。

– Linux 下执行安装

./hyupdsrv

如果要作为守护进程,执行

./hyupdsrv -d 

详细配置可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/09/%e5%be%80%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e4%bc%a0%e5%a4%a7%e6%96%87%e4%bb%b6/

]]>
vue之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/13/vue%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 03:04:52 +0000 http://blog.ncmem.com/wordpress/?p=1581 继续阅读 vue之大文件分段上传、断点续传]]> 相关资料:解决方案,白皮书,产品介绍,产品比较产品源代码开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,deb包安装,rpm包安装,安装引导,控件部署,控件升级,IE9加载控件,IE8加载控件,
示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)
教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6
源码编译:ActiveX(x86)ActiveX(x64)npapiNativeMessagemacOSLinux(兆芯,海光)arm(鲲鹏,飞腾)龙芯(mips)龙芯(loongarch),
视频教程:解决方案,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,sm4加密传输,压缩传输,
ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),
jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs
php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),
二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程
相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,
联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,
        

视频教程:https://www.bilibili.com/video/BV1jm4y127Ut/?vd_source=d1843c7f8c164416779b5188178bad8c

环境:vue2-cli

示例:https://gitee.com/xproer/up6-vue-cli

 

1.下载示例

 

将up6组件复制到项目中

示例中已经包含此目录

 

1.引入up6组件

 

2.配置接口地址

接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表

参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de

 

3.处理事件

 

启动测试

 

启动成功

 

访问测试页面

 

效果

 

数据库

 

下载产品源代码-泽优全平台开源大文件上传控件(up6)

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

]]>
js之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/13/js%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 02:14:21 +0000 http://blog.ncmem.com/wordpress/?p=1579 继续阅读 js之大文件分段上传、断点续传]]> 文件夹上传:从前端到后端

文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠。网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹。今天研究了一下这个问题,在此记录。

先说两个问题:

是否所有后端框架都支持文件夹上传?

是否所有浏览器都支持文件夹上传?

第一个问题:YES,第二个问题:NO

只要后端框架对于表单的支持是完整的,那么必然支持文件夹上传。至于浏览器,截至目前,只有 Chrome 支持。

如果需要其它的浏览器支持则需要借助于插件,比如泽优大文件上传控件:www.webuploader.net

关于WebUploader的功能说明:

大文件上传续传

支持超大文件上传(100G+)和续传,可以关闭浏览器,重启系统后仍然继续上传。

开源

提供ASP.NET,JSP,PHP示例和源代码,其中JSP提供MySQL,Oracle,SQL Server数据库的配置和示例代码。

分片、并发

分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。

当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。

预览、压缩

支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。

解析jpeg中的meta信息,对于各种orientation做了正确的处理,同时压缩后上传保留图片的所有原始meta数据。

多途径添加文件

支持文件多选,类型过滤,拖拽(文件&文件夹),图片粘贴功能。上传本地指定路径的文件,不需要通过点击按钮选择文件。

粘贴功能主要体现在当有图片数据在剪切板中时(截屏工具如QQ(Ctrl + ALT + A), 网页中右击图片点击复制),Ctrl + V便可添加此图片文件。

HTML5 & FLASH

兼容主流浏览器和低版本浏览器,接口一致,实现了两套运行时支持,用户无需关心内部用了什么内核。而且支持IE6,IE8浏览器。

同时Flash部分没有做任何UI相关的工作,方便不关心flash的用户扩展和自定义业务需求。

基于内存映射模式进行IO操作,充分发挥操作系统性能。

MD5秒传

当文件体积大、量比较多时,支持上传前做文件md5值验证,一致则可直接跳过。

如果服务端与前端统一修改算法,取段md5,可大大提升验证性能,耗时在20ms左右。

易扩展、可拆分

采用可拆分机制, 将各个功能独立成了小组件,可自由搭配。

采用AMD规范组织代码,清晰明了,方便高级玩家扩展。

文件夹上传

支持10万+级别的文件夹上传,续传。

支持层级目录结构保存,上传后能够将数据库层级信息保存在数据库中。

提供MySQL,Oracle,SQL Server数据库支持。

支持文件夹续传,在浏览器刷新,重启后仍然能够继续上传。

支持跨域上传。

PC端全平台支持

支持Windows,macOS,Linux。支持国产化操作系统,支持政务信息安全项目。

其中Windows支持低版本系统:Windows XP。

其中浏览器包括:IE6,IE7,IE8(x86,x64),IE9(x86,x64),IE10(x86,x64),IE11(x86,x64),360安全浏览器,360极速浏览器,QQ浏览器,搜狗浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x,Firefox,Chrome,Opera 23+

选择文件夹进行上传

 

 

文件夹上传完毕

 

 

文件夹上传后在服务器中的层级结构

 

 

 

好,假定我们的所有用户都用上了 Chrome,要怎么做才能成功上传一个文件夹呢?这里不用drop这种高大上的东西,就用最传统的<input>。用表单 submit 和 ajax 都可以做,先看 submit 方式。

<form method=”POST” enctype=multipart/form-data>

  <input type=’file’ name=”file” webkitdirectory >

  <button>upload</button>

</form>

我们只要添加上 webkitdirectory 这个属性,在选择的时候就可以选择一个文件夹了,如果不加,文件夹被选中的时候就是灰色的。不过貌似加上这个属性就没法选中文件了… enctype=multipart/form-data 也是必要的,解释参见这里:http://blog.ncmem.com/wordpress/2019/08/09/js怎么上传文件夹/

 

如果用 ajax 方式,我们可以省去<form>,只留下<input>就 OK。

<input type=’file’ webkitdirectory > 

<button id=”upload-btn” type=”button”>upload</button> 

但是这样是不够的,关键在于 Js 的使用。

var files = [];

$(document).ready(function(){

  $(“input”).change(function(){

    files = this.files;

  });

});

$(“#upload-btn”).click(function(){

  var fd = new FormData();

  for (var i = 0; i < files.length; i++) {

    fd.append(“file”, files[i]);

  }

  $.ajax({

    url: “/upload/”,

    method: “POST”,

    data: fd,

    contentType: false,

    processData: false,

    cache: false,

    success: function(data){

      console.log(data);

    }

  });

});

用 ajax 方式,我们必须手动构造一个 FormData Object, 然后放在 data 里面提交到后端。 FormData 好像就只有一个 append 方法,第一个参数是 key,第二个参数是 value,用来构造表单数据。ajax请求中,通过 input 元素的 files 属性获取上传的文件。files属性不论加不加 webkitdirectory 都是存在的,用法也基本一样。不过当我们上传文件夹时,files 中会包含文件相对路径的信息,之后会看到。

用 ajax 上传的好处有两点,首先是异步,这样不会导致页面卡住,其次是能比较方便地实现上传进度条。关于上传进度条的实现可以参考这里。需要注意的是contentType和processData必须设置成false,参考了这里:http://blog.ncmem.com/wordpress/2019/08/09/js怎么上传文件夹/

]]>
php之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/13/php%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Fri, 13 Dec 2019 01:18:02 +0000 http://blog.ncmem.com/wordpress/?p=1577 继续阅读 php之大文件分段上传、断点续传]]> 相关资料:产品首页,控件包,白皮书,白皮书(图文版),产品介绍,产品比较,控件源码文档,开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,Linux-deb控件安装,Linux-rpm控件安装,安装引导,控件布署,控件升级,IE9加载控件,IE8加载控件

解决方案:党政央企国防军工房地产档案管理教育医疗工程管理企业文件传输解决方案

标杆案例:中国港湾中国中车中国石油中国石化,长江电力中信证券上海通用一汽大众,沈阳自动化研究所,

示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)

教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6

视频教程:windows控件安装,mac控件安装,linux-deb控件包安装,linux-rpm控件包安装,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,ActiveX(x86)源码编译,ActiveX(x64)源码编译,Windows(npapi)源码编译,macOS源码编译,Linux(x86_64)源码编译,Linux(arm)源码编译,Linux(mips-uos)源码编译,Linux(mips-kylin-涉密环境)源码编译,sm4加密传输,压缩传输,jsp-eclipse-sm4加密存储,jsp-springboot-sm4加密存储,asp.net-sm4加密存储

ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),

jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)

jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs

php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),

二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程

相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,

联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,

       

产品交流群:泽优Web大文件上传控件

视频教程:https://www.ixigua.com/7201113912295883264

 

版本:6.5.41

代码:https://gitee.com/xproer/up6-php/tree/6.5.41/

 

安装环境

PHP:7.2.14

调整块大小

 

NOSQL

NOSQL不需要任何配置,可以直接访问测试

SQL

创建数据库

您可以直接复制脚本进行创建

 

配置数据库连接

 

6.安装依赖

访问页面进行测试

 

数据表中的数据

相关参考:

文件保存位置

php5教程

 

大文件上传控件(up6)

个人版:http://www.ncmem.com/webapp/up6/purchase.aspx

政企版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=ent

年费版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=year

OEM版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=oem

源码版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=code

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

 

大文件上传下载控件(up6-down2)

政企版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=ent

年费版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=year

OEM版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=oem

源码版:http://www.ncmem.com/webapp/up6/purchase.aspx?type=code

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

]]>
java之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/12/java%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Thu, 12 Dec 2019 09:52:24 +0000 http://blog.ncmem.com/wordpress/?p=1574 继续阅读 java之大文件分段上传、断点续传]]> 相关资料:解决方案白皮书产品介绍产品比较开发文档成功案例产品源代码授权码工具个人版价格企业版价格政企版价格年费版价格OEM版价格源码版价格基础组件示例下载控件升级在线演示在线文档并发能力上传速度下载速度Windows控件安装macOS控件安装deb控件安装rpm控件安装安装引导控件部署控件升级IE9加载控件IE8加载控件
示例下载:asp.net-vs2013asp.net-vs2010jsp-eclipsejsp-springbootjsp-myeclipsephpvue-cilWinForm(C#)C++(WTL)
视频教程:php7测试php5测试vue-cli-测试asp.net-IIS Express测试asp.net-IIS测试asp.net-阿里云(oss)测试asp.net-华为云(obs)测试jsp-springboot测试sm4加密传输压缩传输Discuz集成
源码编译:ActiveX(x86)ActiveX(x64)Windows(npapi)NativeMessagemacOSLinux(海光,兆芯)arm(鲲鹏,飞腾)龙芯mips龙芯LoongArch
ASP.NET教程:asp.netIIS ExpressIISIIS-HttpsOracleminiofastdfs阿里云对象存储(oss)华为云对象存储(obs)
jsp-eclipse教程:测试教程oraclemysqlSQL Serverminiofastdfs阿里云对象存储(oss)华为云对象存储(obs)
jsp-springboot教程:测试教程miniofastdfs阿里云对象存储(oss)华为云对象存储(obs)
jsp-myeclipse教程:mysqloracleSQL Serverfastdfs
php教程:测试教程miniofastdfs阿里云对象存储(oss)
教程:WinForm(C#)测试WTL(C++)测试在vue.js中使用在vue-cli中使用eclipse导入up6组件引用自定义事件自定义业务字段自定义文件保存路径授权码加密存储加密传输使用Minio存储使用FastDFS存储使用达梦数据库数据表字段设计监控fd_create流程监控f_create流程监控f_list.jsp流程
相关问题:WebSocket连接失败md5计算完毕后卡住域名未授权网站安全系统拦截
联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,
        

视频教程:https://www.bilibili.com/video/BV1uj411V75m/?vd_source=d1843c7f8c164416779b5188178bad8c

导入项目:
导入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
导入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
springboot统一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2

 

环境:Windows + Tomcat8.0+

版本:6.5.41

示例:https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.41/

NOSQL

NOSQL示例不需要任何配置,可以直接访问测试

创建数据表

选择对应的数据表脚本,这里以SQL为例

修改数据库连接信息

访问页面进行测试

文件存储路径

up6/upload/年/月/日/guid/filename

数据库记录

相关问题:
1.javax.servlet.http.HttpServlet错误
2.项目无法发布到tomcat
3.md5计算完毕后卡住
4.服务器找不到config.json文件

相关参考:

文件保存位置

 

免费下载产品源代码-泽优全平台开源大文件传输解决方案(up6-down2)

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

由原厂产品开发团队提供7*24小时1对1专业技术支持服务

]]>
jsp之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/12/jsp%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Thu, 12 Dec 2019 08:51:32 +0000 http://blog.ncmem.com/wordpress/?p=1572 继续阅读 jsp之大文件分段上传、断点续传]]> 相关资料:解决方案,白皮书,产品介绍,产品比较产品源代码开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,deb包安装,rpm包安装,安装引导,控件部署,控件升级,IE9加载控件,IE8加载控件,
示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)
教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6
源码编译:ActiveX(x86)ActiveX(x64)npapiNativeMessagemacOSLinux(兆芯,海光)arm(鲲鹏,飞腾)龙芯(mips)龙芯(loongarch),
视频教程:解决方案,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,sm4加密传输,压缩传输,
ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),
jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs
php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),
二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程
相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,
联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,
        

 

视频教程:https://www.bilibili.com/video/BV1uj411V75m/?vd_source=d1843c7f8c164416779b5188178bad8c

导入项目:
导入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
导入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
springboot统一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2

 

环境:Windows + Tomcat8.0+

版本:6.5.41

示例:https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.41/

 

NOSQL

NOSQL示例不需要任何配置,可以直接访问测试

 

创建数据表

选择对应的数据表脚本,这里以SQL为例

 

修改数据库连接信息

访问页面进行测试

 

文件存储路径

up6/upload/年/月/日/guid/filename

 

数据库记录  

相关问题:
1.javax.servlet.http.HttpServlet错误
2.项目无法发布到tomcat
3.md5计算完毕后卡住
4.服务器找不到config.json文件

相关参考:

文件保存位置

 

免费下载产品源代码-泽优全平台开源大文件传输解决方案(up6-down2)

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

]]>
asp.net之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/12/asp-net%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Thu, 12 Dec 2019 07:47:38 +0000 http://blog.ncmem.com/wordpress/?p=1570 继续阅读 asp.net之大文件分段上传、断点续传]]> 相关资料:解决方案,白皮书,产品介绍,产品比较产品源代码开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,deb包安装,rpm包安装,安装引导,控件部署,控件升级,IE9加载控件,IE8加载控件,
示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)
教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6
源码编译:ActiveX(x86)ActiveX(x64)npapiNativeMessagemacOSLinux(兆芯,海光)arm(鲲鹏,飞腾)龙芯(mips)龙芯(loongarch),
视频教程:解决方案,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,sm4加密传输,压缩传输,
ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),
jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs
php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),
二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程
相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,
联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,
        

 

视频教程:https://www.bilibili.com/video/BV1Vs4y1b7yh/?vd_source=d1843c7f8c164416779b5188178bad8c

 

框架:.NET Framework 4.7.2

版本:6.5.41

示例:https://gitee.com/xproer/up6-asp-net/tree/6.5.41/

 

安装.NET Framework 4.7.2

https://dotnet.microsoft.com/en-us/download/dotnet-framework/net472

百度网盘:https://pan.baidu.com/s/13CGIHrRDSc1pPc-gR8miog?pwd=bnbl

 

框架选择4.7.2

 

添加3rd引用

 

编译项目

 

NOSQL

NOSQL无需任何配置可直接访问页面进行测试

 

SQL

使用IIS

大文件上传测试推荐使用IIS以获取更高性能。

使用IIS Express

小文件上传测试可以使用IIS Express

创建数据库

配置数据库连接信息

 

检查数据库配置

点击“清空数据库”链接,测试数据库配置是否正确

 

访问页面进行测试

 

检查数据库数据

 

检查上传的文件

 

相关参考:

文件保存位置

免费下载产品源代码-泽优全平台开源大文件传输解决方案(up6-down2)

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

]]>
javascript之大文件分段上传、断点续传 http://blog.ncmem.com/wordpress/2019/12/12/javascript%e4%b9%8b%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e6%ae%b5%e4%b8%8a%e4%bc%a0%e3%80%81%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0/ Thu, 12 Dec 2019 06:49:39 +0000 http://blog.ncmem.com/wordpress/?p=1568 继续阅读 javascript之大文件分段上传、断点续传]]> 相关资料:解决方案,白皮书,产品介绍,产品比较产品源代码开发文档,成功案例,基础组件,示例下载,控件包,控件升级,在线演示,在线文档,并发能力,上传速度,下载速度,Windows控件安装,macOS控件安装,deb包安装,rpm包安装,安装引导,控件部署,控件升级,IE9加载控件,IE8加载控件,
示例下载:asp.net-vs2013,asp.net-vs2010,jsp-eclipse,jsp-springboot,jsp-myeclipse,php,vue-cil,WinForm(C#),C++(WTL)
教程:WinForm(C#)测试,WTL(C++)测试,在vue.js中使用,在vue-cli中使用,eclipse导入up6
源码编译:ActiveX(x86)ActiveX(x64)npapiNativeMessagemacOSLinux(兆芯,海光)arm(鲲鹏,飞腾)龙芯(mips)龙芯(loongarch),
视频教程:解决方案,php7测试,php5测试,vue-cli-测试,asp.net-IIS Express测试,asp.net-IIS测试,asp.net-阿里云(oss)测试,asp.net-华为云(obs)测试,jsp-springboot测试,sm4加密传输,压缩传输,
ASP.NET教程:asp.net,IIS Express,IIS,IIS-Https,Oracle,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-eclipse教程:测试教程,oracle,mysql,SQL Server,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs),
jsp-springboot教程:测试教程,minio,fastdfs,阿里云对象存储(oss),华为云对象存储(obs)
jsp-myeclipse教程:mysql,oracle,SQL Server,fastdfs
php教程:测试教程,minio,fastdfs,阿里云对象存储(oss),
二次开发:组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,使用Minio存储,使用FastDFS存储,使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程
相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,
联系我们:QQ:1269085759(技术),QQ:3040217208(售后),QQ:1085617561(商务),微信:13235643658,邮箱:1269085759@qq.com,1085617561@qq.com,qwl@ncmem.com,
        

视频教程:https://www.bilibili.com/video/BV1jm4y127Ut/?vd_source=d1843c7f8c164416779b5188178bad8c

环境:vue2-cli

示例:https://gitee.com/xproer/up6-vue-cli

 

1.下载示例

 

将up6组件复制到项目中

示例中已经包含此目录

 

1.引入up6组件

 

2.配置接口地址

接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表

参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de

 

3.处理事件

 

启动测试

 

启动成功

 

访问测试页面

 

效果

 

数据库

 

下载产品源代码-泽优全平台开源大文件上传控件(up6)

免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

]]>
js大文件分块上传断点续传demo http://blog.ncmem.com/wordpress/2019/12/12/js%e5%a4%a7%e6%96%87%e4%bb%b6%e5%88%86%e5%9d%97%e4%b8%8a%e4%bc%a0%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0demo/ Thu, 12 Dec 2019 05:47:34 +0000 http://blog.ncmem.com/wordpress/?p=1566 继续阅读 js大文件分块上传断点续传demo]]> 文件夹上传:从前端到后端

文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠。网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹。今天研究了一下这个问题,在此记录。

先说两个问题:

是否所有后端框架都支持文件夹上传?

是否所有浏览器都支持文件夹上传?

第一个问题:YES,第二个问题:NO

只要后端框架对于表单的支持是完整的,那么必然支持文件夹上传。至于浏览器,截至目前,只有 Chrome 支持。

如果需要其它的浏览器支持则需要借助于插件,比如泽优大文件上传控件:www.webuploader.net

关于WebUploader的功能说明:

大文件上传续传

支持超大文件上传(100G+)和续传,可以关闭浏览器,重启系统后仍然继续上传。

开源

提供ASP.NET,JSP,PHP示例和源代码,其中JSP提供MySQL,Oracle,SQL Server数据库的配置和示例代码。

分片、并发

分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。

当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。

预览、压缩

支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。

解析jpeg中的meta信息,对于各种orientation做了正确的处理,同时压缩后上传保留图片的所有原始meta数据。

多途径添加文件

支持文件多选,类型过滤,拖拽(文件&文件夹),图片粘贴功能。上传本地指定路径的文件,不需要通过点击按钮选择文件。

粘贴功能主要体现在当有图片数据在剪切板中时(截屏工具如QQ(Ctrl + ALT + A), 网页中右击图片点击复制),Ctrl + V便可添加此图片文件。

HTML5 & FLASH

兼容主流浏览器和低版本浏览器,接口一致,实现了两套运行时支持,用户无需关心内部用了什么内核。而且支持IE6,IE8浏览器。

同时Flash部分没有做任何UI相关的工作,方便不关心flash的用户扩展和自定义业务需求。

基于内存映射模式进行IO操作,充分发挥操作系统性能。

MD5秒传

当文件体积大、量比较多时,支持上传前做文件md5值验证,一致则可直接跳过。

如果服务端与前端统一修改算法,取段md5,可大大提升验证性能,耗时在20ms左右。

易扩展、可拆分

采用可拆分机制, 将各个功能独立成了小组件,可自由搭配。

采用AMD规范组织代码,清晰明了,方便高级玩家扩展。

文件夹上传

支持10万+级别的文件夹上传,续传。

支持层级目录结构保存,上传后能够将数据库层级信息保存在数据库中。

提供MySQL,Oracle,SQL Server数据库支持。

支持文件夹续传,在浏览器刷新,重启后仍然能够继续上传。

支持跨域上传。

PC端全平台支持

支持Windows,macOS,Linux。支持国产化操作系统,支持政务信息安全项目。

其中Windows支持低版本系统:Windows XP。

其中浏览器包括:IE6,IE7,IE8(x86,x64),IE9(x86,x64),IE10(x86,x64),IE11(x86,x64),360安全浏览器,360极速浏览器,QQ浏览器,搜狗浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x,Firefox,Chrome,Opera 23+

选择文件夹进行上传

 

 

文件夹上传完毕

 

 

文件夹上传后在服务器中的层级结构

 

 

 

好,假定我们的所有用户都用上了 Chrome,要怎么做才能成功上传一个文件夹呢?这里不用drop这种高大上的东西,就用最传统的<input>。用表单 submit 和 ajax 都可以做,先看 submit 方式。

<form method=”POST” enctype=multipart/form-data>

  <input type=’file’ name=”file” webkitdirectory >

  <button>upload</button>

</form>

我们只要添加上 webkitdirectory 这个属性,在选择的时候就可以选择一个文件夹了,如果不加,文件夹被选中的时候就是灰色的。不过貌似加上这个属性就没法选中文件了… enctype=multipart/form-data 也是必要的,解释参见这里:http://blog.ncmem.com/wordpress/2019/08/09/js怎么上传文件夹/

 

如果用 ajax 方式,我们可以省去<form>,只留下<input>就 OK。

<input type=’file’ webkitdirectory > 

<button id=”upload-btn” type=”button”>upload</button> 

但是这样是不够的,关键在于 Js 的使用。

var files = [];

$(document).ready(function(){

  $(“input”).change(function(){

    files = this.files;

  });

});

$(“#upload-btn”).click(function(){

  var fd = new FormData();

  for (var i = 0; i < files.length; i++) {

    fd.append(“file”, files[i]);

  }

  $.ajax({

    url: “/upload/”,

    method: “POST”,

    data: fd,

    contentType: false,

    processData: false,

    cache: false,

    success: function(data){

      console.log(data);

    }

  });

});

用 ajax 方式,我们必须手动构造一个 FormData Object, 然后放在 data 里面提交到后端。 FormData 好像就只有一个 append 方法,第一个参数是 key,第二个参数是 value,用来构造表单数据。ajax请求中,通过 input 元素的 files 属性获取上传的文件。files属性不论加不加 webkitdirectory 都是存在的,用法也基本一样。不过当我们上传文件夹时,files 中会包含文件相对路径的信息,之后会看到。

用 ajax 上传的好处有两点,首先是异步,这样不会导致页面卡住,其次是能比较方便地实现上传进度条。关于上传进度条的实现可以参考这里。需要注意的是contentType和processData必须设置成false,参考了这里:http://blog.ncmem.com/wordpress/2019/08/09/js怎么上传文件夹/

]]>