一些有关browser-server的文件上传问题

写blog的目的是记录些有用的东西,为自己也为大家做点贡献。

简单说说场景,A使用browser上传本地的文件到server端。问题可以归结为以下几个方面:
1.如何在browser上实现上传文件的控件
2.如何在server接受并处理
3.如何在browser上更新结果

其实整个过程主要涉及http传输协议,html标准,以及一些客户端的动态脚本语言
首先说说1,普遍的做法是用一个form作为上传文件的单元,其method设置为post, enctype为multipart/form-data,例如:
<form method='POST' enctype="multipart/form-data">    
File to upload: <input type=file name=upload><br>
<input type=submit value=Ok name=submit/>
<input type=button value=Cancel name=cancel/>
其中input中type指定为file即可使用html标准提供的控件来上传文件。这种做法的好处是可以使用hidden input添加与文件绑定的参数,例如最大的文件大小等,用于支持server的验证等功能。

server主要负责接收、处理并给出结果。技术上还是用很多种实现方式的,想servlet等等。关键是上传文件不同于普通的post-back request,server端需要解析request成一个个文件和相关参数。如果从头实现必定费时费力,可以采用Apache File upload( http://commons.apache.org/fileupload/),或者其他的实现,这里就不再累述了。server端返回的结果有多种形式,例如xml response或jsp page等等。

当browser收到server端返回的结果后,就可以做相应的处理了。以javascript和xml response为例,用javascript获取xml response中的数据,并设置到html页面中相应的位置中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值