文件上传 java jsp

来源:互联网 发布:linux查看文件大小 编辑:程序博客网 时间:2024/04/29 15:38


最近在做毕业设计,用到了java 文件上传的功能,记录下

使用组件为: FileUpload


下载地址:点击打开链接


得到压缩包后解压缩,commons-io-2.4-bin -> commons-io-2.4 将其中的压缩包均复制到项目中




jsp页面代码如下

    <form action="fileUpload.do" method="post" enctype="multipart/form-data" name="fr">    <table align="center" border="1" width="400px">    <tr>    <td>选择文件</td>    <td><input type="file" name="img"></td>    </tr>    <tr>    <td colspan="2" align="center"><input type="submit" value="提交"></td>    </tr>    </table>    </form>
注意:实现文件上传功能时 表单form的属性enctype=“multipart/form-data” 一定要出现     输入input的属性type=“file”


servlet关键代码如下

 //检查文件上传的请求是否使用了"multipart/form-data"boolean isMultipart=ServletFileUpload.isMultipartContent(request);if (!isMultipart){//报错return ;}//Create a factory for disk-based file itemsFileItemFactory factory=new DiskFileItemFactory();//创建一个文件上传处理器的实例ServletFileUpload upload=new ServletFileUpload(factory);List<FileItem> items=null;try {//使用处理器对请求进行处理,它会把消息体中的每一块(部分)解析成一个FileItem对象items=upload.parseRequest(request);} catch (FileUploadException e){e.printStackTrace();}if (items == null)//报错return ;for (FileItem fileItem : items) {//处理第一个FileItemif (fileItem.isFormField()) {//如果是普通的表单输入域String name=fileItem.getFieldName();//获取普通参数的名String value=fileItem.getString();//参数对应的值//对值进行转码,防止中文乱码value=new String(value.getBytes("ISO-8859-1"), "UTF-8");System.out.println(name+"="+value);} else {//是文件上传域String objName=fileItem.getName();//获取上传的文件名//对值进行转码,防止中文乱码objName=new String(objName.getBytes("ISO-8859-1"), "UTF-8");session.setAttribute("objName", objName);/*//获取上传的文件的MIME类型String contentType=fileItem.getContentType();//获取上传的文件的大小long size=fileItem.getSize();*/String basePath=session.getAttribute("url1").toString();File file=new File(basePath, objName);try {fileItem.write(file);//把上传的文件的内容写到目标文件中去} catch (Exception e) {e.printStackTrace();}//out.println(fileName);RequestDispatcher rd=request.getRequestDispatcher("search.do");rd.forward(request, response);}}



0 0
原创粉丝点击