在jsp中利用jspsmartupload实现上传文件

来源:互联网 发布:淘宝商城如何申请 编辑:程序博客网 时间:2024/06/05 11:18

利用第三方包jspsmartupload.jar,可以轻松实现WEB页面中上传文件的功能.

 jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点:
(1)使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便。
(2)能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。
(3)能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。
(4)下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下,都可以利用jspSmartUpload进行下载。
(5)能将文件上传到数据库中,也能将数据库中的数据下载下来。这种功能针对的是MYSQL数据库,因为不具有通用性,所以本文不准备举例介绍这种用法。

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.io.*"%>
<%@ page import="com.jspsmart.*" %>
<%@ page import="scjgju_bean.oraclecon"%>
<%
String bianhao=(String)session.getValue("bianhao");
com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();
mySmartUpload.initialize(pageContext);
mySmartUpload.setMaxFileSize(500 * 1024*1024);
mySmartUpload.upload();
oraclecon conn=new oraclecon();
String sql="";
for (int i=0;i<mySmartUpload.getFiles().getCount();i++)
{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing())
{  
   String myFileName=myFile.getFileName();
   String suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
   mySmartUpload.setAllowedFilesList("doc,excel,txt,jpg,gif,bmp,");
   String ext= mySmartUpload.getFiles().getFile(0).getFileExt();
   if(!(ext.equals("doc")||ext.equals("excel")||ext.equals("txt")||ext.equals("jpg")||ext.equals("gif")||ext.equals("bmp")))
   {
    out.print("<script language='javascript'>alert('上传失败,上传文件只能为指定格式的文件请重试!');</script>");
    out.print("<script language='javascript'>window.location.href = 'scjgju_upload.jsp'</script>");
   }
   else
   {
   int fileSize=myFile.getSize();
   String aa=getServletContext().getRealPath("/")+"upload/";   
   request.setCharacterEncoding("GB2312");
   myFile.saveAs("upload/"+bianhao+"_"+myFileName);  
   String filename=bianhao+"_"+myFileName;
   String filesize=""+mySmartUpload.getSize();
   sql="delete from zwy_uploadfile where bianhao='"+bianhao+"' and filename='"+filename+"'";
   conn.executeUpdate(sql);
   java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   java.util.Date currentTime = new java.util.Date();//得到当前系统时间
   String date = formatter.format(currentTime); //将日期时间格式化
   sql="insert into zwy_uploadfile(bianhao,filename,filesize,fileintro,filenotice,FILECONTENTTYPE,SUBMIT_TIME,JDID,url) ";
   sql+="values('"+bianhao+"','"+filename+"','"+filesize+"','"+request.getParameter("intro")+"','"+request.getParameter("filenotic")+"','"+ext+"','"+date+"','"+request.getParameter("qyname")+"','upload/"+filename+"')";
   conn.executeUpdate(sql);
   conn.closeConnection();
   String pic="文件成功上传至:"+"upload/"+bianhao+"_"+myFileName;
   session.setAttribute("pic",pic);  
   response.sendRedirect("scjgju_upload.jsp");
   }
   }
   else
   {out.print("<script language='javascript'>alert('文件上传失败!');location=''</script>");}}
%>
<html>
<head></head>
<body leftmargin="0" topmargin="0" bgcolor="#ffffff">
<form>
p<input type="text" name="pic" value="<%=session.getAttribute("pic")%>" size="30">
</form>
</body>
</html>

在下载页中实现:

else if(request.getParameter("zt")!=null&&request.getParameter("zt").equals("download")){  
    SmartUpload su = new SmartUpload();   
   su.initialize(pageContext);  
   su.setContentDisposition(null);
   su.downloadFile("/upload/"+request.getParameter("filename"));
   out.clear();
   out=pageContext.pushBody();
    }


原创粉丝点击