使用smartupload进行文件上传
来源:互联网 发布:cfnet跟踪算法 编辑:程序博客网 时间:2024/06/05 05:06
关于文件上传的代码,只有百度一下都能找到一大堆。但是可惜大多数都使用的是jsp来处理上传,而使用servlet处理文件上传的文章是比较少的。但是不管是jsp还是servlet处理都会跳转但是这样就很难看了。这就要使用到js内嵌的框架了。这样页面看起来就不会跳转了。下面就一步一步的来写下这个程序吧。
1.下载smartupload的jar包,不是jspsmartupload.这一步就大家自己弄了,我就不多说了。
2.编写文件上传的表单,enctype不能忽略,提交的方法要选择post方法
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!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=UTF-8"><title>文件上传</title><script type="text/javascript" language="JavaScript"> function callback(msg) { document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>"; } function f(){var i=1;for(i=1;i<6;i++){ var s=document.getElementById("pic"+i).value; if(""==s||s==null){ alert("必须上传5个图片文件"); return false ; }}}</script> <body> <div id="uploadimg"> <form action="CheckUpload" id="form1" name="form1" encType="multipart/form-data" method="post" target="hidden_frame" onsubmit="return f()"> <label>图片1</label> <input type="file" id="pic1" name="pic1"/><br> <label>图片2</label> <input type="file" id="pic2" name="pic2"/><br> <label>图片3</label> <input type="file" id="pic3" name="pic3"/><br> <label>图片4</label> <input type="file" id="pic4" name="pic4"/><br> <label>图片5</label> <input type="file" id="pic5" name="pic5"/><br> <font color="blue">支持JPG,JPEG,GIF,BMP,png文件的上传</font> <iframe name='hidden_frame' id="hidden_frame" style="display:none"></iframe> <span id="msg"></span><br> <input type="submit" value="上传"/> <input type="reset" value="取消"/> </form> </div></body></html>
这里对上传的文件做了简单判断,这里就多了 <iframe name='hidden_frame' id="hidden_frame" style="display:none"></iframe> 以及target="hidden_frame",span就用来显示反馈信息。
3.编写servlet处理文件上传
在servlet可以使用下面的2句取得pagecontext
JspFactory jspf=JspFactory.getDefaultFactory();
PageContext context=jspf.getPageContext(this, request, response, null, true, 1024, true);
至于这5个参数大家可以去查文档
package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspFactory;import javax.servlet.jsp.PageContext;import org.lxh.smart.SmartUpload;public class CheckUpload extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setCharacterEncoding("GBK");PrintWriter out=response.getWriter();//新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); //上传初始化 JspFactory jspf=JspFactory.getDefaultFactory(); PageContext context=jspf.getPageContext(this, request, response, null, true, 1024, true); su.initialize(context); boolean sign = true; //4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。 try { su.setDeniedFilesList("exe,bat,jsp,htm,html"); su.upload(); //String name = su.getRequest().getParameter("uname") ; IPTimeStamp its = new IPTimeStamp() ;// 取得客户端的IP地址 java.io.File f=new java.io.File(this.getServletContext().getRealPath("/")+"images");if(!f.exists()){f.mkdirs();} for(int x=0;x<su.getFiles().getCount();x++){ String ext = su.getFiles().getFile(x).getFileExt() ;// 扩展名称 String fileName = its.getIPTimeRand() + "." + ext ; su.getFiles().getFile(x).saveAs(f+java.io.File.separator + fileName) ; } //将上传文件保存到指定目录 } catch (Exception e) { out.print("<script>parent.callback('文件类型不支持或者上传失败')</script>"); sign = false; } if(sign==true) { out.print("<script>parent.callback('文件上传成功')</script>"); }}}
下面先来看下效果截图,这里我选择了一个exe文件
下面是上传成功的截图
到这里文章就写好了。
- 使用smartupload进行文件上传
- 使用SmartUpload上传文件
- 使用SmartUpload上传文件
- 使用smartupload上传文件
- 用SmartUpload进行文件上传
- 使用smartUpload组件进行文件上传以及获取文本数据
- JSP使用SmartUpload上传文件
- 如何使用smartUpload上传文件
- 使用SmartUpload批量上传文件
- servlet下用SmartUpload进行上传文件
- JSP使用SmartUpload实现文件上传
- 使用 SmartUpload 在jsp中上传文件
- JSP 使用smartupload上传文件,JSP+servlet
- smartUpload文件上传组件
- JSP smartupload 文件上传
- smartupload多文件上传
- SmartUpload 上传文件
- SmartUpload上传文件
- C# 解析XML
- 网络协议分析工具Ethereal的使用
- Labels aligning in UITableViewCell
- EMC笔试总结
- android 音乐播放器
- 使用smartupload进行文件上传
- 总结:三种传递动态分配内存的方法
- PHP 验证码图片无法正常显示
- v\:* { Behavior: url(#default#VML) }
- Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器
- 实用新型专利与发明专利有什么区别
- CSS中behavior属性
- java枚举
- Android Junit单元测试