免费HTTP上传文件控件WebUploadFile.ocx发布,让实现Word在线编辑器变得容易

原理winsock模拟表单上传数据,这样一般的上传接收组件都可以接收,如我们常用的 upload.asp,java的upload.do等

特点:

支持多文件带表单参数设定同时上传。

下载地址

http://www.vdisk.cn/down/index/3832662A5292/WebUploadFile.ocx.html

使用图

上图是配置服务器接收的请求,大家应该看得懂吧。

客户端ocx使用方法,如果在vb,vc等工程调用的话,可以象上图一样在属性页设置。

1)指定上传服务器各项参数,以下参数灵活设置

        WebUpload.Host = "192.168.0.x"
        WebUpload.Port = "8080"
        WebUpload.Path = "/abc/upload" 
2)上传指定文件(一个文件)

        WebUpload.UploadAllFile "c:/3.jpg"  

3)上传多文件     
        WebUpload.AppendUploadFile "c:/1.jpg","c:/1.jpg"
        WebUpload.AppendUploadFile "c:/2.jpg","c:/2.jpg"
        WebUpload.AppendUploadFile "c:/3.jpg","c:/3.jpg"

        WebUpload.UploadAllFile

4)上传文件时同时带参数
        WebUpload.AppendFormData "name", "张三"

        WebUpload.AppendFormData "name2", "李四" 

注册ocx后,html调用代码

<HTML><BODY><OBJECT classid="clsid:27A3B5CD-80DA-45F3-93F9-44C7DD631DF8"></OBJECT></BODY></HTML>

附:java接收的实现片断,asp等接收类似,因为就是表单上传和接收的模式,说白了就是现在你用的上传接收方式不用变化,直接用。

不懂写的上网搜索一下就有了。

import org.apache.commons.fileupload.DiskFileUpload;

......

     DiskFileUpload fu = new DiskFileUpload();
     // 设置允许用户上传文件大小,单位:字节
     fu.setSizeMax(fc.getFile_max_size());
     // 设置最多只允许在内存中存储的数据,单位:字节
     fu.setSizeThreshold(fc.getFile_max_memory());
     // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
     fu.setRepositoryPath(FILE_TEMP_DIR);
     //开始读取上传信息
     List fileItems = fu.parseRequest(request);
     // 依次处理每个上传的文件
     Iterator iter = fileItems.iterator();

     HashMap map = new HashMap();

     while (iter.hasNext()) {
         item = (FileItem)iter.next();
         if (item.isFormField()) {
          //处理表单域中其他不是文件域的信息
             String fieldSubName = item.getFieldName();
             map.put(fieldSubName,new String(item.getString("GBK")));
         }//end if
      }//end while

   

    iter = fileItems.iterator();
    while (iter.hasNext()) {
        item = (FileItem)iter.next();

        //忽略其他不是文件域的所有表单信息 tmp_ian = 文件分隔符
        if (!item.isFormField()) {

               String name = item.getName();

               item.write(new File(FILE_DIR+tmp_ian+ name ));
        }

    }

原文地址:https://www.cnblogs.com/zhwl/p/2763011.html