Skip to content

网络传输控制相关属性

MaxUploadSize

说明:
数值型;可读写;读取/设置最大允许提交的数据量。以字节为单位,N*1024。

语法:

javascript
// 设置
Obj.MaxUploadSize = 1024 * 1024;  // 1MB

// 读取
var maxSize = Obj.MaxUploadSize;

使用示例:

javascript
// 设置最大上传大小为10MB
Obj.MaxUploadSize = 10 * 1024 * 1024;

// 设置最大上传大小为50MB
Obj.MaxUploadSize = 50 * 1024 * 1024;

console.log("最大上传大小:", Obj.MaxUploadSize, "字节");

MinUploadFileSize

说明:
数值型;可读写;读取/设置最小允许提交的文件字节数。以字节为单位,N*1024。执行SaveToURL上传的文件的字节数如果低于这个值,将无法正常提交保存,并会弹出提示信息。

语法:

javascript
// 设置
Obj.MinUploadFileSize = 1024;  // 1KB

// 读取
var minSize = Obj.MinUploadFileSize;

使用示例:

javascript
// 设置最小上传文件大小为1KB
Obj.MinUploadFileSize = 1024;

// 设置最小上传文件大小为10KB
Obj.MinUploadFileSize = 10 * 1024;

console.log("最小上传文件大小:", Obj.MinUploadFileSize, "字节");

MaxNetworkBufferSize

说明:
数值型;可读写;读取/设置网络传输的最大缓存大小。以字节为单位,缺省值:8388608字节(8MB)。

语法:

javascript
// 设置
Obj.MaxNetworkBufferSize = 8388608;  // 8MB

// 读取
var bufferSize = Obj.MaxNetworkBufferSize;

使用示例:

javascript
// 设置网络缓存为16MB
Obj.MaxNetworkBufferSize = 16 * 1024 * 1024;

// 设置网络缓存为4MB
Obj.MaxNetworkBufferSize = 4 * 1024 * 1024;

console.log("网络缓存大小:", Obj.MaxNetworkBufferSize, "字节");

ReceiveDataTimeOut

说明:
数值型;可读写;读取/设置网络接收超时时间。以秒为单位,缺省值:180秒。

语法:

javascript
// 设置
Obj.ReceiveDataTimeOut = 300;  // 300秒

// 读取
var receiveTimeout = Obj.ReceiveDataTimeOut;

使用示例:

javascript
// 设置接收超时为5分钟
Obj.ReceiveDataTimeOut = 300;

// 设置接收超时为10分钟
Obj.ReceiveDataTimeOut = 600;

console.log("接收超时时间:", Obj.ReceiveDataTimeOut, "秒");

ConnectServerTimeOut

说明:
数值型;可读写;读取/设置网络连接服务器超时时间。以秒为单位,缺省值:180秒。

语法:

javascript
// 设置
Obj.ConnectServerTimeOut = 60;  // 60秒

// 读取
var connectTimeout = Obj.ConnectServerTimeOut;

使用示例:

javascript
// 设置连接超时为2分钟
Obj.ConnectServerTimeOut = 120;

// 设置连接超时为30秒
Obj.ConnectServerTimeOut = 30;

console.log("连接超时时间:", Obj.ConnectServerTimeOut, "秒");

IsUseUTF8URL

说明:
布尔型;可读写;读取/设置是否使用UTF-8传输URL;缺省值:TRUE。
这个参数指定了发送请求的编码格式,即需要服务器相应的对接受请求字符串也使用相同的编码来解析请求数据,例如tomcat就需要在server.xml中指定uri=utf-8。

语法:

javascript
// 设置
Obj.IsUseUTF8URL = true;  // 或 false

// 读取
var useUTF8URL = Obj.IsUseUTF8URL;

HTML参数设置:

html
<param name="IsUseUTF8URL" value="-1" />

使用示例:

javascript
// 启用UTF-8 URL传输
Obj.IsUseUTF8URL = true;

// 禁用UTF-8 URL传输
Obj.IsUseUTF8URL = false;

console.log("是否使用UTF-8 URL:", Obj.IsUseUTF8URL);

IsUseUTF8Data

说明:
布尔型;可读写;读取/设置是否使用UTF-8在智能提交中传输网页数据;缺省值:FALSE。
如果网页编码设置为UTF-8,需要设置此属性,以便控件自动使用UTF-8编码进行网页数据的提交。

语法:

javascript
// 设置
Obj.IsUseUTF8Data = true;  // 或 false

// 读取
var useUTF8Data = Obj.IsUseUTF8Data;

HTML参数设置:

html
<param name="IsUseUTF8Data" value="-1" />

使用示例:

javascript
// 启用UTF-8数据传输
Obj.IsUseUTF8Data = true;

// 禁用UTF-8数据传输
Obj.IsUseUTF8Data = false;

console.log("是否使用UTF-8数据:", Obj.IsUseUTF8Data);

IsShowNetErrorMsg

说明:
布尔型;可读写;是否显示网络传输错误对话框。比如打开一个服务端不存在的文件,会弹出提示对话框"文件网络传输错误",该提示对话框可以通过此属性屏蔽。

语法:

javascript
// 设置
Obj.IsShowNetErrorMsg = true;  // 或 false

// 读取
var showNetError = Obj.IsShowNetErrorMsg;

使用示例:

javascript
// 显示网络错误对话框
Obj.IsShowNetErrorMsg = true;

// 屏蔽网络错误对话框
Obj.IsShowNetErrorMsg = false;

console.log("是否显示网络错误:", Obj.IsShowNetErrorMsg);

IsUseControlAgent

说明:
布尔型;可读写;读取/设置向服务器提交请求时是否使用"NTKO OFFICE CONTROL AGENT"。此信息也可用于判断是否是控件请求的数据,从而可以设定后台程序拒绝其他请求。"NTKO OFFICE CONTROL AGENT"此信息会替换请求同中说明浏览器信息的部分,因此可以使用此参数达到防盗链,防下载的功能。

语法:

javascript
// 设置
Obj.IsUseControlAgent = true;  // 或 false

// 读取
var useControlAgent = Obj.IsUseControlAgent;

注意: 此属性仅适用于IE浏览器。

使用示例:

javascript
// 启用控件代理标识
Obj.IsUseControlAgent = true;

// 禁用控件代理标识
Obj.IsUseControlAgent = false;

console.log("是否使用控件代理:", Obj.IsUseControlAgent);

IsDirectConnect

说明:
布尔型;可读写;是否使用直接连接方式连接服务器。【而不是默认的采用浏览器设置】。对于某些老版本的代理服务器环境,设置此选项可以避免因浏览器自动检测代理服务器引起的问题。

语法:

javascript
// 设置
Obj.IsDirectConnect = true;  // 或 false

// 读取
var directConnect = Obj.IsDirectConnect;

使用示例:

javascript
// 使用直接连接
Obj.IsDirectConnect = true;

// 使用浏览器代理设置
Obj.IsDirectConnect = false;

console.log("是否直接连接:", Obj.IsDirectConnect);

综合使用示例

网络传输配置

javascript
// 配置网络传输参数
function configureNetworkSettings() {
    // 设置上传大小限制
    Obj.MaxUploadSize = 50 * 1024 * 1024;  // 50MB
    Obj.MinUploadFileSize = 1024;  // 1KB
    
    // 设置网络缓存
    Obj.MaxNetworkBufferSize = 16 * 1024 * 1024;  // 16MB
    
    // 设置超时时间
    Obj.ReceiveDataTimeOut = 300;  // 5分钟
    Obj.ConnectServerTimeOut = 60;  // 1分钟
    
    // 设置编码格式
    Obj.IsUseUTF8URL = true;
    Obj.IsUseUTF8Data = true;
    
    // 设置错误处理
    Obj.IsShowNetErrorMsg = false;  // 屏蔽错误对话框
    
    // 设置连接方式
    Obj.IsDirectConnect = true;
    Obj.IsUseControlAgent = true;
    
    console.log("网络传输配置完成");
}

网络状态检查

javascript
// 检查网络传输配置
function checkNetworkSettings() {
    var settings = {
        maxUploadSize: Obj.MaxUploadSize,
        minUploadFileSize: Obj.MinUploadFileSize,
        maxBufferSize: Obj.MaxNetworkBufferSize,
        receiveTimeout: Obj.ReceiveDataTimeOut,
        connectTimeout: Obj.ConnectServerTimeOut,
        useUTF8URL: Obj.IsUseUTF8URL,
        useUTF8Data: Obj.IsUseUTF8Data,
        showNetError: Obj.IsShowNetErrorMsg,
        useControlAgent: Obj.IsUseControlAgent,
        directConnect: Obj.IsDirectConnect
    };
    
    console.log("网络传输配置:", settings);
    return settings;
}

文件大小验证

javascript
// 验证文件大小是否符合要求
function validateFileSize(fileSize) {
    var maxSize = Obj.MaxUploadSize;
    var minSize = Obj.MinUploadFileSize;
    
    if (fileSize > maxSize) {
        console.log("文件过大,最大允许:", maxSize, "字节");
        return false;
    }
    
    if (fileSize < minSize) {
        console.log("文件过小,最小要求:", minSize, "字节");
        return false;
    }
    
    console.log("文件大小符合要求:", fileSize, "字节");
    return true;
}

超时处理

javascript
// 设置不同场景的超时时间
function setTimeoutsForScenario(scenario) {
    switch(scenario) {
        case 'fast':
            // 快速传输场景
            Obj.ConnectServerTimeOut = 30;
            Obj.ReceiveDataTimeOut = 60;
            break;
        case 'normal':
            // 普通传输场景
            Obj.ConnectServerTimeOut = 60;
            Obj.ReceiveDataTimeOut = 180;
            break;
        case 'slow':
            // 慢速网络场景
            Obj.ConnectServerTimeOut = 120;
            Obj.ReceiveDataTimeOut = 600;
            break;
        default:
            console.log("未知场景");
    }
    
    console.log("超时设置完成:", scenario);
}

属性分类总结

分类属性功能默认值
文件大小控制MaxUploadSize最大上传大小无限制
MinUploadFileSize最小上传大小无限制
网络缓存MaxNetworkBufferSize网络缓存大小8388608字节
超时控制ReceiveDataTimeOut接收超时时间180秒
ConnectServerTimeOut连接超时时间180秒
编码控制IsUseUTF8URLUTF-8 URL传输TRUE
IsUseUTF8DataUTF-8数据传输FALSE
错误处理IsShowNetErrorMsg显示网络错误TRUE
连接控制IsUseControlAgent使用控件代理FALSE
IsDirectConnect直接连接FALSE

服务器端配置示例

Tomcat配置

xml
<!-- server.xml 中配置UTF-8编码 -->
<Connector port="8080" 
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           URIEncoding="UTF-8" />

防盗链检查

javascript
// 服务器端检查User-Agent
function checkControlAgent(userAgent) {
    if (userAgent.indexOf("NTKO OFFICE CONTROL AGENT") !== -1) {
        return true;  // 是控件请求
    }
    return false;  // 不是控件请求
}

注意事项

  1. 文件大小限制:MaxUploadSize和MinUploadFileSize需要根据服务器配置合理设置
  2. 超时设置:网络环境较差时,建议增加超时时间
  3. 编码一致性:IsUseUTF8URL和IsUseUTF8Data需要与服务器端编码保持一致
  4. 代理环境:在代理服务器环境下,IsDirectConnect可能解决连接问题
  5. 防盗链:IsUseControlAgent可以用于服务器端识别控件请求
  6. 错误处理:IsShowNetErrorMsg设为false时,需要通过StatusCode检查错误状态
  7. 浏览器兼容性:IsUseControlAgent仅适用于IE浏览器