- 浏览: 722231 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
18335864773:
看了楼主写的用jxl生成excel。有地方用到了流,还特别强调 ...
jxl导出excel文件简单示例 -
shaoshou111:
查看Apache的并发请求数及其TCP连接状态netstat ...
Linux查看连接数,并发数 -
gengjunshi:
非常感谢哈,刚好在学webservice编程,很有用呢。
JAX-WS开发webservice示例详解 -
zcgewu:
encrypt2()和encrypt()有什么区别
JAVA实现AES加密 -
java爱好者92:
ireport的操作还是相对比较复杂的,帆软报表会相对简单一点 ...
iReport报表开发中常见的问题
1。上传文件流程
先通过用户提交文件,保存文件到服务器端,然后在写入数据库中,每次到下载页面时从数据库中读出文件,生成文件在服务器目录中,以下。。。
文件上传后保存文件到服务器中jsp,
upFile.jsp
commonfile.jsp
插入文件数据到数据库中
读出文件数据,并保存
给定传递过来的参数(文件名,文件存储在服务器的文件名,文件在服务器的路径,文件类型),下载文件Action
先通过用户提交文件,保存文件到服务器端,然后在写入数据库中,每次到下载页面时从数据库中读出文件,生成文件在服务器目录中,以下。。。
文件上传后保存文件到服务器中jsp,
upFile.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" %> <%@page import="java.util.List;"%> <html> <head> <title>上传文件</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <base target="_self"> <link href="Css/style.css" rel="stylesheet"> <script type="text/javascript"> function check(){ var file = document.getElementById("file1").value; if(file == ""){ alert('请选择要上传的文件'); return false; }else{ window.returnValue=file; return true; } } </script> </head> <body> <% String files=request.getParameter("files"); %> <form name="form2" enctype="multipart/form-data" method="post" action="../MissionManage/commonfile.jsp?files=<%=files %>" onsubmit="return check();"> <center> <table align="center" width="350" height="150" border="0" cellpadding="0" cellspacing="0"><!-- background="images/upFile_bg.gif --> <tr> <td valign="top"><table width="100%" height="145" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="49" colspan="2"> </td> </tr> <tr> <td width="9%" height="53"> </td> <td width="91%"><b>请选择上传的文件:</b><br> <input id="file1" name="file1" type="file" size="35" onkeydown="return false;"> <br> 注:文件大小请控制在10M以内。</td> </tr> <tr> <td colspan="2" align="center"><input name="Submit" type="submit" class="btn_grey" value="确认"> <input name="Submit2" type="button" class="btn_grey" onClick="window.close()" value="关闭"></td> </tr> </table></td> </tr> </table> </center> </form> </body> </html>
commonfile.jsp
<%@ page language="java" import="java.io.*" pageEncoding="UTF-8"%> <%@page import="java.util.*,org.apache.commons.fileupload.FileItem" %> <%@page import="java.text.SimpleDateFormat,java.util.Date" %> <%@page import="com.PoliceSystem.tools.FileOperate" %> <jsp:useBean id="factory" scope="page" class="org.apache.commons.fileupload.disk.DiskFileItemFactory" /> <jsp:useBean id="upload" scope="page" class="org.apache.commons.fileupload.servlet.ServletFileUpload" /> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>上传文件</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <base target="_self"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" language="javascript"> </script> </head> <body> <% request.setCharacterEncoding("UTF-8"); String path1 = (String)request.getRealPath("/upload1"); String files=request.getParameter("files"); String[] fileList=files.split(";"); File file = new File(path1); if(!file.exists()){ file.mkdirs(); } factory.setRepository(file); factory.setSizeThreshold(1024*1024); upload.setFileItemFactory(factory); try{ List<FileItem> list= upload.parseRequest(request); for(FileItem item:list){ if(item.isFormField()){ //String value=item.getString("UTF-8"); //session.setAttribute("fileName", value); }else{ String value=item.getName(); int start=value.lastIndexOf("\\"); String fileName=value.substring(start+1); if(fileName.length() == 0 || fileName == ""){ out.println("<script>alert('上传失败');window.close();</script>"); }else{ if(item.getSize()>10000000){ out.println("<script>alert('对不起,您上传的文件超过10M,无法完成上传!');window.close();</script>"); }else{ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); Date date =new Date(); String[] f = item.getName().split("\\\\"); //System.out.println(f[f.length-1]); String oldFileName = f[f.length-1]; for(int i=0;i<fileList.length;i++){ if(fileList[i].indexOf(oldFileName)!=-1){ out.println("<script>alert('对不起,您上传的文件与现有上传的文件重名,请更换文件名重新上传!');window.returnValue='';window.close();</script>"); } } String fType = FileOperate.getFileType(item.getName());//文件类型 fileName = sdf.format(date)+"."+fType;//新文件名 //System.out.println(item.getName()+"---"+fileName); item.write(new java.io.File(path1,fileName)); //////--1--///// String mailFileNames = new String(); String old = (String)session.getAttribute("fuJianFileNames"); if(old!=null){ mailFileNames = old; } mailFileNames+=oldFileName+"|"+fileName+";"; //System.out.println("mailFileNames="+mailFileNames); session.removeAttribute("fuJianFileNames"); session.setAttribute("fuJianFileNames", mailFileNames); //////--2--///// //String pathName = path1+"\\"+fileName; //System.out.println("pathName="+pathName); out.println("<script>window.close();</script>"); } } } } }catch (Exception e) { e.printStackTrace(); out.println("<script>window.close();</script>"); } %> </body> </html>
插入文件数据到数据库中
public boolean insert_annex(String[] str){ boolean b=true; String sql =""; con = db.getConn(); try{ sql="insert into annex (querykey,sfilename,committime,Filetype,filepath,pno,Annex) values (?,?,?,?,?,?,?)"; ps = con.prepareStatement(sql); for(int i=0;i<str.length-1;i++){ ps.setString(i+1, str[i]); } File file = new File(str[6]);//附件 InputStream iso = new FileInputStream(file); ps.setBinaryStream(7, iso, iso.available()); ps.execute(); iso.close(); System.out.println("删除临时文件:" + file.delete());// 删除tmp文件 }catch(Exception e){ b=false; e.printStackTrace(); }finally{ this.close(); } return b; }
读出文件数据,并保存
public boolean addTempFile_annex(String querykey,HttpServletRequest request){ boolean b=true; con = db.getConn(); InputStream in = null; OutputStream out= null; String path1 = (String)request.getRealPath("/upload1");//文件下载临时目录 try{ String sql="select filePath,annex from annex where querykey='"+querykey+"'"; //String sql_1="select annex from annex where querykey='"+querykey+"'"; ps = con.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ File f = new File(path1+rs.getString("filepath")); in=rs.getBinaryStream("annex"); out = new FileOutputStream(f); int len = 10 * 100 * 100; //定义字符数组长度 byte[] P_Buf=new byte[len]; int j; while((j=in.read(P_Buf))!=-1){ out.write(P_Buf, 0, j); } } in.close(); out.flush(); //强制清出缓冲区 out.close(); }catch(Exception e){ b=false; e.printStackTrace(); }finally{ this.close(); } return b; }
给定传递过来的参数(文件名,文件存储在服务器的文件名,文件在服务器的路径,文件类型),下载文件Action
package com.PoliceSystem.action.mail; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class downLoadFile extends ActionSupport{ private static final long serialVersionUID = -2207648627734251737L; public String execute() throws Exception{ HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); String fileminitype = request.getParameter("fileType"); String filename1 = new String(request.getParameter("fileName1").getBytes("ISO8859-1"),"UTF-8"); String filename2 = new String(request.getParameter("fileName2").getBytes("ISO8859-1"),"UTF-8"); String filepath = request.getRealPath("/upload1"); File f = new File(filepath+"\\"+filename2); Long filelength = f.length(); int cacheTime = 10; response.setContentType(fileminitype); response.setHeader("Location",filename1); response.setHeader("Cache-Control", "max-age=" + cacheTime); response.setContentType("application/octet-stream"); byte[] b = filename1.getBytes("GBK"); filename1 = new String(b,"8859_1"); response.setHeader("Content-Disposition", "attachment;filename=" + filename1); response.setContentLength(filelength.intValue()); OutputStream outputStream = response.getOutputStream(); InputStream inputStream = new FileInputStream(f); byte[] buffer = new byte[1024]; int i = -1; while ((i = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, i); } outputStream.flush(); outputStream.close(); inputStream.close(); return null ; } }
发表评论
-
父页面与子页面的相互调用
2017-12-14 14:51 2467一、在页面里用 open ... -
(转)Java jacob调用打印机打印word文档
2017-12-01 17:33 3626折腾了好久,最终决定由用一个第三方的,找到了jacob,还不 ... -
gson的使用分享
2016-01-15 13:48 1743一、 最基本的对象与JSON相互转换 1、 定义java对象 ... -
(转)FindBugs规则整理
2015-12-18 10:40 6436FindBugs是基于Bug Patterns ... -
Gson注解和GsonBuilder
2015-04-07 11:49 1614//注意这里的Gson的构建方式为GsonBuilder, ... -
Spring AOP 的@Aspect (转)
2015-03-03 15:50 866从Spring 2.0开始,可以使用基于schema及@As ... -
Hibernate一对多和多对一关系详解 (转载)
2014-07-10 17:00 1788双向一对多关系,一是关系维护端(owner side),多是关 ... -
Struts2的Action如何交给spring来管理
2014-07-10 11:35 829我的Action是 <package name=&qu ... -
javax.xml.ws.soap.SOAPFaultException: Cannot create a secure XMLInputFactory
2014-06-04 20:26 1700javax.xml.ws.soap.SOAPFaultExce ... -
照片打包下载
2014-05-22 09:32 1155设计思路: 通过业务表中照片编号获得需要下载的照片列表 ... -
获得请求IP
2013-12-06 14:18 1068在AbstractInterceptor中 Action ... -
jxl导入excel
2013-09-17 16:56 868jxl读取excel和写excel基本类似,只是Writab ... -
Apache与Nginx的优缺点比较(转)
2013-08-26 11:13 11331、nginx相对于apache的优点: 轻量级,同样起we ... -
findbugs清理总结
2013-08-19 14:45 2935findbugs警告26个。主要有以下9类问题。 1、B ... -
Spring 2.0 的AOP
2013-05-22 16:36 912我使用的是Spring 2.0 的AOP, 它引入了一种更加简 ... -
APK下载配置
2013-04-15 17:44 1040tomcat-6.0\conf\web.xml <mi ... -
My97DatePicker在Frame中无法打开站点
2013-04-09 17:17 1146大部分日期控件都具备功能如:带时间显示,支持周显示,自定义格式 ... -
jxl导出excel文件简单示例
2013-02-19 11:04 8782package util; import java. ... -
(转)在java中通过JDBC连接Oracle,ResultSet返回总为空,这个问题是怎么解决呢
2013-01-08 10:38 16320数据库基本访问格式 Class.forName(“JDBC驱动 ... -
转:spring多个定时任务quartz配置
2012-11-22 09:07 1503applicationContext.xml <im ...
相关推荐
(1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 (2)单击“上传服务器”窗口中的“启动服务..”按钮。 (3)单击“上传...
java中文件上传与下载
Java文件的上传和下载Java文件的上传和下载Java文件的上传和下载Java文件的上传和下载
在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字
文件上传与下载 java struts2
使用jdk7及以后的文件操作,包含了常用类、常用方法的介绍和文件上传和下载的代码
java web文件上传-下载-查看操作
本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
java文件上传jjjava文件上传下载ava文件上传下载ava文件上传下载下载
主要介绍了JAVA通过HttpURLConnection 上传和下载文件的方法,非常具有实用价值,需要的朋友可以参考下
java web文件上传与下载的小例子 喜欢的同学可以参考一下
经典的java文件上传下载实例。 通过阅读详细的注释,可以比较容易地理解java文件上传和下载的原理和一般的做法。
Java实现文件与图片的上传下载---三种方式 方法1:JSP+Servlet; 方法2:smartUpload; 方法3:FileUpload;
java中文件的上传和下载,在上传图片时可以将图片显示出来
java多文件上传 如果要动态的 可以修改 上传页面
java文件异步上传
java实现pdf上传,下载,在线预览,删除,修改等功能,属于是模版,可以借鉴,不是完全适应所有的
实现Linux与windows文件互传,用HTML实现网页版上传文件下载的界面,目前配置是Linux服务器,本地运行需要切换配置