开发笔记之20140124

关于上传文件的input:

<input type="file" />

以前一直用文件上传组件实现文件上传,例如jquery的上传组建,再比如ExtJs的上传组件。无论用什么组件,都是在<input type="file" />标签的基础上实现的。浏览器为了保护用户本地数据安全,在选择上传文件后,浏览器不会显示所选文件的真是路径,而是给出一个fackpath,最初的时候就很纳闷,你把真是路径隐藏了,后台代码怎么能拿到文件路径来上传文件呢,后来经过研究才明白,在包含<input type="file" />标签的form表单提交之后,浏览器就会将所选文件上传之服务器的一个临时目录下,后台程序再用数据流将该临时文件copy到目标路径。上传完成后临时文件会被删除。

在 HTML 文档中 <input type="file"> 标签每出现一次,一个 FileUpload 对象就会被创建。

该元素包含一个文本输入字段,用来输入文件名,还有一个按钮,用来打开文件选择对话框以便图形化选择文件。

该元素的 value 属性保存了用户指定的文件的名称,但是当包含一个 file-upload 元素的表单被提交的时候,浏览器会向服务器发送选中的文件的内容而不仅仅是发送文件名。

为安全起见,file-upload 元素不允许 HTML 作者或 JavaScript 程序员指定一个默认的文件名。HTML value 属性被忽略,并且对于此类元素来说,value 属性是只读的,这意味着只有用户可以输入一个文件名。当用户选择或编辑一个文件名,file-upload 元素触发 onchange 事件句柄。

您可以通过遍历表单的 elements[] 数组,或者通过使用 document.getElementById()来访问 FileUpload 对象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章