文件的上传介绍
1、要有一个form标签,method=post请求
2、form标签的encType属性值必须为multipart/form-data值
3、在form标签中使用input type=file添加上传的文件
4、编写服务器代码(Servlet程序)接收,处理上传的数据
encType=multipart/form-data 表示提交的数据,以多段(每一个表单项一个数据段)的形式进行拼接,然后以二进制流的形式发送给服务器
文件上传,HTTP协议的说明
上传文件需要导入的jar包:
commons-fileupload-1.2.1.jar
commons-1.4.jar
文件下载
response.setHeader("Content-Disposition", "attachment; fileName=1.jpg");
这个响应头告诉浏览器。这是需要下载的。而attachment表示附件,也就是下载的一个文件。fileName=后面,表示下载的文件名。
如果要下载的文件是中文名的话,就会出现乱码的情况。原因是在响应头中,不能包含中文字符,只能包含ASCLL码。
附件中文名乱码问题的解决方案:
如果客户端浏览器是IE浏览器或者谷歌浏览器。我们需要使用URLEncoder类先对中文名进行UTF-8的编码操作。
因为IE浏览器和谷歌浏览器收到含有编码后的字符串会议UTF-8字符集进行解码显示。
String str = "attachment; fileName=" + URLEncoder.encode("中文.jpg", "UTF-8");
response.setHeader("Content-Disposition", str);