下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
Apache common fileUpload 来实现!本文采用的jsp+servlet 来实现的上传,并将文件存储到服务器端!
而在servlet 端 的工作过程是1. 创建一个文件的解析对象, 然后对上传文件的大小做一个限制, 获取上传文件, 将文件存储服务器的文件夹中! 下边看一下servlet的代码, servlet的使用要在配置文件中进行配置!具体如何配置 就参见百度! 这里不再介绍!
这样一个简单的文件的上传功能就完成了。我们还可以同事上传多个文件,如果使用spring mvc ,他还自己封装了更简单的实现方法!
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> <script type="text/javascript"> //指定允许的上传文件类型 var extArray = new Array(".jpg",".png",".jpeg",".gif"); var allowFormSubmit=false; //有哪些限制 function LimitAttach(form,file){ var allowSubmit = false; if (!file){ alert("请先选择文件,然后在上传!"); return; } while (file.indexOf("\\") != -1){ file = file.slice(file.indexOf("\\") + 1); } var ext = file.slice(file.indexOf(".")).toLowerCase(); for (var i = 0; i < extArray.length; i++) { if (extArray[i] == ext){ allowSubmit = true; break; } } if (allowSubmit){ //符合条件, 发给指定的servlet form.submit(); form.method="post"; form.action="servlet/UploadHandleServlet"; }else{ //检测上传文件类型 alert("只能上传以下格式的文件:"+ (extArray.join("")) + "\n请重新选择再上传."); } } </script> </head> <body> <form name="upform" target="_self" id="uploadForm" enctype="multipart/form-data"> <input name="uploadfile" size="40" type="file" > <input name="upload" type="submit" onclick="LimitAttach(this.form,this.form.uploadfile.value)" value="上传"/> </form> </body> </html>
而在servlet 端 的工作过程是1. 创建一个文件的解析对象, 然后对上传文件的大小做一个限制, 获取上传文件, 将文件存储服务器的文件夹中! 下边看一下servlet的代码, servlet的使用要在配置文件中进行配置!具体如何配置 就参见百度! 这里不再介绍!
package com.tgb.test.Servlet; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.servletexception; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.diskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadHandleServlet extends HttpServlet { private File uploadpath; private File tempPath; public void doGet(HttpServletRequest request,HttpServletResponse response) throws servletexception,IOException { //1 创建文件解析对象 diskFileItemFactory factory = new diskFileItemFactory(); factory.setSizeThreshold(4096); factory.setRepository(tempPath); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(1000000 * 20); try { //获取上传文件 List fileItems = upload.parseRequest(request); String itemNo = ""; for (Iterator iter = fileItems.iterator(); iter.hasNext();) { FileItem item = (FileItem) iter.next(); //是普通的表单输入域 if(item.isFormField()) { if ("itemNo".equals(item.getFieldName())) { itemNo = item.getString(); } } //是否为input="type"输入域 if (!item.isFormField()) { String fileName = item.getName(); long size = item.getSize(); if ((fileName == null || fileName.equals("")) && size == 0) { continue; } //截取字符串 如:C:\WINDOWS\Debug\PASSWD.LOG fileName = fileName.substring(fileName.lastIndexOf("\\") + 1,fileName.length()); //将文件存入指定的文件 item.write(new File(uploadpath,fileName)); } } response.sendRedirect(request.getcontextpath() + "/index.jsp?flag='成功!'"); } catch (Exception e) { e.printstacktrace(); } } public void doPost(HttpServletRequest request,IOException { doGet(request,response); } public void init() throws servletexception { //itemmanager= new ItemmanagerImpl(); uploadpath = new File(getServletContext().getRealPath("upload")); System.out.println("uploadpath=====" + uploadpath); //如果目录不存在 if (!uploadpath.exists()) { //创建目录 uploadpath.mkdir(); } //临时目录 tempPath = new File(getServletContext().getRealPath("temp")); if (!tempPath.exists()) { tempPath.mkdir(); } } }
这样一个简单的文件的上传功能就完成了。我们还可以同事上传多个文件,如果使用spring mvc ,他还自己封装了更简单的实现方法!
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。