现在的位置: 首页 > 综合 > 正文

文件上传

2014年08月30日 ⁄ 综合 ⁄ 共 1590字 ⁄ 字号 评论关闭

文件上传很简单,几步轻松搞定:

1.将jsmartcom_zh_CN.jar包导入到项目的WEB-INF文件路径下的lib中。

2.在index.jsp页面中编写页面:

<body>
    <form action="doUpload.jsp" method="post" enctype="multipart/form-data">
    上传文件<input type="file" name="file"><input type="submit" value="上传文件">
    </form>
  </body>

3.在处理页面doUpload.jsp页面写东西:

注意第一行,将jsmartcom_zh_CN.jar中的包com.jspsmart.upload导入。

<%@ page language="java" import="java.util.*,com.jspsmart.upload.*" pageEncoding="utf-8"%>
<%@page import="javax.print.DocFlavor.STRING"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
SmartUpload upload=new SmartUpload();
//初始化
upload.initialize(this.getServletConfig(),request,response);

//开始上传
upload.upload();
//获得所有上传文件
Files files=upload.getFiles();
//获得第一个上传文件
File file=files.getFile(0);
//安全验证,获得文件的扩展名
 String ext=file.getFileExt();
 if("exe".equals(ext)){
   out.write("<script>alert('exe文件不允许上传');location.href='index.jsp'</script>");
 }else{
 //文件大小
 int size=file.getSize();//字节
 System.out.println(size+"---"+file.getFileName());
 file.saveAs("upload/"+file.getFileName());
}
%>

最后就是注意上传乱码问题:

1、第一类乱码:

  就是文件传送过来的文件名等是乱码;但是servlet输出的页面汉字正常显示。

解决方法:将传送的JSP页面(即含有表单的页面)的页面编码方式改为:

<%@ page contentType="text/html; charset=GB2312" language="java"import="java.sql.*" errorPage="" %>

<meta http-equiv="Content-Type"content="text/html;
charset=GB2312"
/>

 

2、第二类乱码:

 就是文件正常传输,但是servlet传过来的参数字段以及输出的页面汉字全部显示为乱码;

解决方法:

在 doPost(HttpServletRequest request,
   HttpServletResponseresponse)方法之后:

加上

 response.setContentType("text/html;charset=gb2312");
  response.setCharacterEncoding("utf-8");

放在
  PrintWriter out = response.getWriter();

之前。

【上篇】
【下篇】

抱歉!评论已关闭.