RFC1867 协议客户端实现 http://blog.csdn.net/windwl/archive/2024/03/02/1518868.aspxRFC1867 协议客户端实现 1. RFC1867 协议介绍 RFC1867 协议主要是在 HTTP 协议的基础上为 INPUT 标签增加了 file 属性,同时限定了 Form 的 method 必须为POST,ENCTYPE 必须为 multipart/form-data。当然还增加了一些与此相关属性,但都不是很重要,我们在此不作讨论。 在一般的基于 Web 的程序中,我们往往使用
标签,该标签在被浏览器解析后会产生一个文本框和一个浏览按钮,单击浏览按钮会出现系统的文件选择框。其经典表示如下图所示。 2. 执行上传及
标签的一些特性 在上图选择相应的文件,按 Upload 按钮即可把选择的文件上传到服务器(服务器端可用 JspSmartUpload 等组件接受文件)。归根结底上传的所有操作都是由浏览器作的,用户所做的只是简单地选择了一下文件而已,接下来的问题是,如何能把一个目录中所有的文件实现一次性上传? (1) 因为目录下的文件数量是不定的,因此我们基本不可能通过增加多个
的 Value 属性赋值是徒劳的行为,因为 RFC1867 协议并没有要求浏览器的实现者一定实现 Value 属性,而 IE 恰好忽略了 Value 属性。 即以下代码将是徒劳的(IE 中)
RFC1867 协议客户端实现 http://blog
net/windwl/archive/2024/03/02/1518868
aspxRFC1867 协议客户端实现 1
RFC1867 协议介绍 RFC1867 协议主要是在 HTTP 协议的基础上为 INPUT 标签增加了 file 属性,同时限定了 Form 的 method 必须为POST,ENCTYPE 必须为 multipart/form-data
当然还增加了一些与此相关属性,但都不是很重要,我们在此不作讨论
在一般的基于 Web 的程序中,我们往往使用标签,该标签在被浏览器解析后会产生一个文本框和一个浏览按钮,单击浏览按钮会出现系统的文件选择框
其经典表示如下图所示
执行上传及标签的一些特性 在上图选择相应的文件,按 Upload 按钮即可把选择的文件上传到服务器(服务器端可用 JspSmartUpload 等组件接受文件)
归根结底上传的所有操作都是由浏览器作的,用户所做的只是简单地选择了一下文件而已,接下来的问题是,如何能把一个目录中所有的文件实现一次性上传
(1) 因为目录下的文件数量是不定的,因此我们基本不可能通过增加多个标签的方式来解决问题
(2) 假如在 Jsp 中我们可以考虑以下方式来解决:通过 Jsp 动态创建标签,并使所创建的标签不可见
把每个标签的 Value 属性设置为每个文件的路径
在按 Upload 时再实行一次性上传
在我们试验了之后就会发现,对的 Value 属性赋值是徒劳的行为,因为 RFC1867 协议并没有要求浏览器的实现者一定实现 Value 属性,而 IE 恰好忽略了 Value 属性
即以下代码将是徒劳的(IE 中) //对 Value 赋值 Form1
value=”c:\\aa
txt”; //执