您的位置:首页 > Web前端 > JavaScript

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

2012-04-27 21:37 465 查看
利用第三方包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();

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息