教育网研究 下载 (上传本地路径进行本地下载,和上传文件的下载)

news/2024/7/7 15:40:07 标签: 教育, string, manager, stylesheet, upload, import

上传本地的路径,和上传
pp2up.jsp

<%@page contentType="text/html;charset=gb2312" import="java.util.*"%>
<%@ page import="com.pp.db.DBOperate"%>
<%@ page import="my.bean.*"%>
<%@ page import="com.jetsum.manager.*"%>
<html>
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>我要上传</title>
<link href="../center/style/center_css.css" _fcksavedurl=""../center/style/center_css.css"" rel="stylesheet" type="text/css" />
<link href="../login/style/login_css.css" rel="stylesheet" type="text/css" />
<link href="upload_style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.STYLE4 {font-size: 14px; color: #FFFFFF; font-weight: bold; }
.STYLE5 {
 font-size: 12px;
 color: #000000;
}
.STYLE6 {
 font-size: 14px;
 font-weight: bold;
 color: #000000;
}
.STYLE7 {color: #FF0000}
-->
</style>


  </head>
 
  <body>
  <br/><br/>
 
  <%

    DBOperate dbo = new DBOperate();
    String hqltypefirst ="from Source_type where levels='0' and state='1' order by orders";
    dbo.setLength(1000);
    List typefirst = (List) dbo.findSQLHibernate(hqltypefirst, 1);
 
  manager manager1=new manager();
 if(session.getAttribute("manager")==null){
        out.println("<form name='frm1' style='display:none' method='post' action='/web/managere7kao2007back/index.jsp' target='_top'>");
     out.println("</form>");
        out.println("<script language='javascript'>");
           out.println("document.frm1.submit();");
           out.println("</script>");
 }else{
      manager1=(manager)session.getAttribute("manager");       
 }
 
 
 Picture pic = new Picture();
    String random = pic.getRandom();
    String encryRandom= pic.manage(random);
    session.setAttribute("get_attach",random);
 
 session.setAttribute("sessionNumsY","0");
 session.setAttribute("sessionNums","0");
 
    String hql = "from Source_type as type1 where type1.levels='0' and state='1' and leibie=4 order by type1.orders desc";
    List typelistFirst=(List)dbo.findSQLHibernate(hql,1); 
 
    String loginerror="";
    if(session.getAttribute("loginerror")!=null){
    loginerror=(String)session.getAttribute("loginerror");
    session.removeAttribute("loginerror");
    }
%>
  <script>
var secondidsize=new Array();;
var threesize=new Array();
//选择二级分类
function selectSecondType(s) {
    var a = document.getElementsByName("levelid"); 
 switch (a[s].value)
 {
  case'':
   var type_labels=new Array("-- 请选择 --");
   var type_values=new Array("");
   break;
<%
  for(int i = 0; i < typelistFirst.size(); i++)
  {
   Source_type typeone = (Source_type)typelistFirst.get(i);
   out.println("case'"+typeone.getId()+"':");
   //System.out.println("case'"+typeone.getId()+"':");
  //二级分类信息
   List typelistSecond=(List)dbo.findSQLHibernate("from Source_type as type1 where type1.levels='"+typeone.getId()+"' and state='1' order by type1.orders desc",1);
   out.println("var type_labels = new Array();");
   out.println("var type_values = new Array();");
   out.println("type_labels[0] = /"-- 请选择 --/";");
   out.println("type_values[0] = /"/";");
   out.println("secondidsize[s]="+typelistSecond.size());
   for(int j=0;j<typelistSecond.size();j++)
   {
    Source_type Type = (Source_type)typelistSecond.get(j);
    out.println("type_labels["+(j+1)+"] = /""+new String(Type.getTypename().getBytes("iso-8859-1"),"gb2312")+"/";");
    out.println("type_values["+(j+1)+"] = /""+Type.getId()+"/";");
   }
   out.println("break;");
  }
%>
 }
 var b = document.getElementsByName("secondid");
 b[s].options.length = 0;
 for(var i = 0; i <type_labels.length; i++) {
  b[s].add(document.createElement("OPTION"));
  if(i>0){
     b[s].style.display="";
  }else{
     b[s].style.display="none";
  }
  b[s].options[i].text=type_labels[i];
  b[s].options[i].value=type_values[i];
 }
}

var nms=0;

//选择三级分类
function selectThreeType(s){
   var b = document.getElementsByName("secondid");
    switch (b[s].value)
 {
  case'':
   var product_labels=new Array("-- 请选择 --");
   var product_values=new Array("");
   break;
<%
   for(int i = 0; i < typelistFirst.size(); i++)
   {
      Source_type typeone = (Source_type)typelistFirst.get(i);
   List typeList = (List)dbo.findSQLHibernate("from Source_type as type1 where type1.levels='"+typeone.getId()+"' and state='1' order by type1.orders desc",1);
   for(int j=0;j<typeList.size();j++)
   {
    Source_type Type = (Source_type)typeList.get(j);
    out.println("case'"+Type.getId()+"':");
      //三级分类
       List threeList=null;
                threeList=(List)dbo.findSQLHibernate("from Source_type as type1 where type1.levels='"+Type.getId()+"' and state='1' order by type1.orders desc",1);
    out.println("var product_labels = new Array();");
    out.println("var product_values = new Array();");
    out.println("product_labels[0] = /"-- 请选择 --/";");
    out.println("product_values[0] = /"/";");
    out.println("threesize[s]="+threeList.size());
    for(int k = 0; k < threeList.size(); k++)
    {
     Source_type Producttype = (Source_type)threeList.get(k);;
     out.println("product_labels["+(k+1)+"] = /""+new String(Producttype.getTypename().getBytes("iso-8859-1"),"gb2312")+"/";");
     out.println("product_values["+(k+1)+"] = /""+Producttype.getId()+"/";");
    }
    out.println("break;");
   }
  }
%>
 }
 var c = document.getElementsByName("typeid");
 c[s].options.length = 0;
 for(var i = 0; i <product_labels.length; i++)
 {
  c[s].add(document.createElement("OPTION"));
  if(i>0){
    c[s].style.display="";
  }else{
    c[s].style.display="none";
  }
  c[s].options[i].text=product_labels[i];
  c[s].options[i].value=product_values[i];
 }
}


function checkspace(checkstr) {
  var str = '';
  for(i = 0; i < checkstr.length; i++) {
    str = str + ' ';
  }
  return (str == checkstr);
}

function checksubmit(){
  if(checkspace(form6.title.value)){
      alert('请输入资料名称!');
   form6.title.focus();
   return false;
  }
 
  if(checkspace(form6.content.value)){
      alert('请输入资源介绍!');
   form6.content.focus();
   return false;
  }
  if(checkspace(form6.levelid.value)){
      alert('请选择分类!');
   form6.levelid.focus();
   return false; 
  }
  if(secondidsize>0){
    if(checkspace(form6.secondid.value)){
        alert('请选择分类!');
     form6.secondid.focus();
     return false; 
    }
  }
 if(threesize>0){
  if(checkspace(form6.typeid.value)){
      alert('请选择分类!');
   form6.typeid.focus();
   return false; 
  }
 }
   if(checkspace(form6.files.value)&&checkspace(form6.filesb.value)){
      alert('请选择资料!');
   form6.filesb.focus();
   return false;
  }
 form6.submit();
}


</script>
  <form name="form6" method="post" action="/web/center/SourceAction.html?method=uploadsource" enctype="multipart/form-data">
    <table width="699" border="0" >
  <tr>
    <td width="135"  bgcolor="#B8C9DB"><div align="right"><div id="upload_uptext" style="margin-top:5px;"><span class="STYLE6">资料名称:</span></div></td>
    <td width="635"><input name="title" type="text" /></td>
  </tr>
  <tr>
    <td bgcolor="#B8C9DB"><div align="right"id="upload_uptext" style="margin-top:5px;"><span class="STYLE6">资料分类:</span></div></td>
    <td>
     <select name="levelid" onChange="selectSecondType(0)">
     <option value="" selected>-- 请选择 --</option>
     <%for(int i=0;i<typelistFirst.size();i++){
         Source_type sourcetype=(Source_type)typelistFirst.get(i);
     %>
     <option value="<%=sourcetype.getId()%>"><%=new String(sourcetype.getTypename().getBytes("iso-8859-1"),"gb2312")%></option>
     <%}%>
   </select>
   <select name="secondid" style="display:none" onChange="selectThreeType(0)">
     <option value="" selected>-- 请选择 --</option>
   </select>
   <select name="typeid" style="display:none">
     <option value="" selected>-- 请选择 --</option>
   </select></td>
  </tr>
  <tr>
    <td bgcolor="#B8C9DB"><div align="right" id="upload_uptext" style="margin-top:5px;"><span class="STYLE6">进入免费区:</span></div></td>
    <td><select name="frees"><option value="0" >否</option><option value="1" selected>是</option></select></td>
  </tr>
  <tr>
    <td bgcolor="#B8C9DB"><div align="right"id="upload_uptext" style="margin-top:5px;"><span class="STYLE6">是否加密:</span></div></td>
    <td><select name="jiami"><option value="0" selected>否</option><option value="1">是</option></select></td>
  </tr>
  <tr><td bgcolor="#B8C9DB"><div align="right"id="upload_uptext" style="margin-top:5px;"><span class="STYLE6">资源介绍:</span></div></td>
  <td><textarea name="content"></textarea></td>
  </tr>
 
  <tr>
    <td bgcolor="#B8C9DB"><div align="right" id="upload_uptext" style="margin-top:5px;"><span class="STYLE6">选择上传文件:</span></div></td>
    <td><input type="file" name="files">
   
    </td>
   
  </tr>
  <tr>
    <td bgcolor="#B8C9DB"><div align="right" id="upload_uptext" style="margin-top:5px;"><span class="STYLE6">选择本地文件:</span></div></td>
    <td>
    <input type="file" id="f1" style="display:none">
     <input id="f2" name="filesb"><input type="button" value="本地" onClick="f1.click();f2.value=f1.value;">
    </td>
  </tr>
 <tr>
    <td>&nbsp;</td>
    <td><input id="tijiaofiles" type="button" value="确认提交信息" onClick="javascript:return checksubmit()"></td>
  </tr>
 
</table>
</form>
  </body>
</html>

SourceAction.java的一个方法  (对上传的文件和本地浏览的文件做不同的处理)
package my.action;

import java.util.Calendar;
import java.util.List;
import java.util.Random;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspFactory;

import my.bean.Log;
import my.bean.Source_inf;
import my.bean.Source_type;
import my.bean.manager;
import my.bean.member;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.jetsum.util.PubFunc;
import com.jspsmart.upload.SmartUpload;
import com.pp.db.DBOperate;
public class SourceAction extends DispatchAction {

public ActionForward uploadsource(ActionMapping actionMapping,
   ActionForm actionForm, HttpServletRequest request,
   HttpServletResponse response) throws Exception {
  DBOperate dbo = new DBOperate();

  SmartUpload su = new SmartUpload();
 
  JspFactory _jspxFactory = JspFactory.getDefaultFactory();
        javax.servlet.jsp.PageContext pageContext =
                                        _jspxFactory.getPageContext(
                                                this.getServlet(),
                                                request,
                                                response,
                                                null,
                                                true,
                                                8192,
true);

  su.initialize(pageContext);
//  su.initialize();
  su.setAllowedFilesList("jpg,bmp,gif,rar");
  su.upload();
  
  String filename = su.getRequest().getParameter("title");
  String levelid = su.getRequest().getParameter("levelid");
  String secondid = su.getRequest().getParameter("secondid");
  String typeid = su.getRequest().getParameter("typeid");
  String frees = su.getRequest().getParameter("frees");
  String jiami = su.getRequest().getParameter("jiami");
  String content = su.getRequest().getParameter("content");
  String filesb=su.getRequest().getParameter("filesb");
  Source_inf inf=new Source_inf();
  if(filesb==null)
  {
  String pic = "";
  Random r = new Random();
  int ra = r.nextInt();
  Calendar CD = Calendar.getInstance();
  int YY = CD.get(Calendar.YEAR);
  int MM = CD.get(Calendar.MONTH) + 1;
  int DD = CD.get(Calendar.DATE);
  int HH=CD.get(Calendar.HOUR);
  int M=CD.get(Calendar.MINUTE);
  String dt = Integer.toString(YY) + Integer.toString(MM)
    + Integer.toString(DD)+Integer.toString(HH)+Integer.toString(M);
  String prefix = dt + Integer.toString(ra);
  String name = su.getFiles().getFile(0).getFileName();
  int size=new Integer(su.getFiles().getFile(0).getSize()/1024);  //KB
  int lastdot = name.lastIndexOf(".");
  String name2 = name.substring(lastdot);
   String format=name.substring(lastdot+1);
  pic = prefix + name2;
  com.jspsmart.upload.File file = su.getFiles().getFile(0);
  file.saveAs("uploadfiles/" + pic, su.SAVE_VIRTUAL);
  inf.setFilesrc(new String(pic.getBytes("gb2312"), "iso-8859-1"));
    inf.setFormats(format);
    inf.setSizes(size+"KB");
  }
  else
  {
   String mm=filesb.replace("//","/");   
   inf.setFilesrc(new String(mm.getBytes("gb2312"), "iso-8859-1"));
   int lastdot = filesb.lastIndexOf(".");
    String format=filesb.substring(lastdot+1);
     inf.setFormats(format);
     inf.setSizes(2+"KB");  //本地上传的文件不知道大小
  }
 
  inf.setFilename(new String(filename.getBytes("gb2312"), "iso-8859-1"));
 
  if(!typeid.equals(""))
  {
   inf.setTypeid(PubFunc.parseInt(typeid));
  }
  else
  {
   if(!secondid.equals(""))
   {
    inf.setTypeid(PubFunc.parseInt(secondid));
   }
   else
   {
    inf.setTypeid(PubFunc.parseInt(levelid));
   }
   
  }
  inf.setFrees(frees);
  inf.setJiami(PubFunc.parseInt(jiami));
  inf.setContent(new String(content.getBytes("gb2312"), "iso-8859-1"));
  
  HttpSession session = request.getSession();
  
  manager  manager1=(manager)session.getAttribute("manager");
  //member  member1=(member)session.getAttribute("member");
     inf.setMemberid(manager1.getId());
     inf.setDatetime(new java.util.Date().toLocaleString());
     inf.setState("1");
     inf.setCode(0);
  
     inf.setNewss("1");
     inf.setRedian("0");
     inf.setAuthor(new String(manager1.getUsername().getBytes("gb2312"), "iso-8859-1"));
     inf.setNumbers(1);
     inf.setShenhe(1);
    
     dbo.insert_update(inf, "insert");
  // dbo.insert_update(member1, "update");
  Log log1 = new Log();
  log1.setUsername(manager1.getUsername());
  log1.setDatetime(new java.util.Date().toLocaleString());
  log1.setAction(new String(("添加下载资源<font color='#FF0000'><strong>"
    + new String(inf.getFilename().getBytes("iso-8859-1"),"gbk") + "</strong>--" + "</font>成功!").getBytes("gbk"),"iso-8859-1"));
  dbo.insert_update(log1, "insert");

  response.sendRedirect("/web/managere7kao2007back/upload/pp2up.jsp");
  return actionMapping.findForward("");

 }
}
download_do.jsp(精华部份,对本地下载和上传到uploadfiles的下载方法不同)
<%@page contentType="text/html;charset=UTF-8" import="java.util.*"%>
<%@ page import="my.bean.*"%>
<%@ page import="java.io.*"%>
<%@ page import="com.jetsum.manager.*,com.jetsum.util.*"%>
<%@ page import="com.pp.db.DBOperate"%>
<%
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">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
   <%
  
  String  location="";
   if(request.getParameter("location")!=null)
   {
  location= request.getParameter("location");
   }
 
     String id=request.getParameter("id");
      DBOperate dbo=new DBOperate();
    String hql4="from Source_inf where id="+id;
  List inflist=(List)dbo.findSQLHibernate(hql4,1);
     Source_inf inf1=new Source_inf();
        if(inflist.size()>0){
      inf1=(Source_inf)inflist.get(0);}
     String src=new String(inf1.getFilesrc().getBytes("iso-8859-1"),"gb2312");
     System.out.println(src);
   if(location==null||location.equals("")){
   %>
     <script>
   var file ="<%=src%>";
 var pattern =/[A-Za-z]/:[^/:/?/"/>/</*]*/;
 flag = pattern.test(file);  
if(!flag)
{//不是本地文件
  window.location.href="download_do.jsp?location=no&id=<%=id%>";
}  
  else
 {
//是本地文件

window.location.href="download_do.jsp?location=yes&id=<%=id%>";
 }
  </script> 
 <%   }
  if(location.equals("no"))   ///不是本地的但上传到uploadfiles的怎么下载
  {
     String filesrcsss="/uploadfiles/";
 filesrcsss = request.getRealPath(filesrcsss);  
 
if(!PubFunc.fileExists(filesrcsss+"/"+inf1.getFilesrc())){
    //System.out.println(filesrcsss+"/"+inf1.getFilesrc());
      out.println("<script>");
      out.println("alert('该文件已不存在!');");
          out.println("window.location.href='/Download.jsp'"); 
      out.println("</script>");
      return;
   }
      if(session.getAttribute("member")==null){
    out.println("<script>");
      out.println("alert('请注册成会员,现在所有的资源都可以免费下载!');");
      out.println("window.location.href='/News.jsp'"); 
      out.println("</script>");  
      return;
 }
   out.println("<script>");
   out.println("document.location='http://"+request.getServerName()+"/uploadfiles/"+inf1.getFilesrc()+"';");
                        //下载了
      out.println("</script>");
  }
    if(location.equals("yes"))  //是本地的怎么下载
  {
  if(!PubFunc.fileExists(src)){
      out.println("<script>");
      out.println("alert('该文件已不存在!');");
            out.println("window.location.href='/Download.jsp'"); 
           out.println("</script>");
 
  
      return;
   }
  if(session.getAttribute("member")==null){
    out.println("<script>");
      out.println("alert('请注册成会员,现在所有的资源都可以免费下载!');");
      out.println("window.location.href='/News.jsp'"); 
      out.println("</script>");  
      return;
 }
//以下为下载的操作
out.clearBuffer(); // 如果使用JSP,需要加上这一句
OutputStream os = response.getOutputStream(); // 页面输出流,jsp/servlet都可以
String filename=src;                        //src为E:/java的软件/PLSQL Developer 中文.rar
 int lastdot = filename.lastIndexOf("/");
  String name2 = filename.substring(lastdot);
   String downname=filename.substring(lastdot+1);
//下载的时候显示出名字为PLSQL Developer 中文.rar
response.addHeader("Content-Disposition", new String(("attachment; filename=" + downname).getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名
File f = new File(filename); // 你的文件
InputStream is = new FileInputStream(f); // 文件输入流
byte[] bs = new byte[1024];  // 读取缓冲区
int len;
while((len=is.read(bs))!=-1){ // 循环读取
  os.write(bs,0,len); // 写入到输出流
}
is.close();  // 关闭
os.close(); // 关闭
  }
  %>

  </body>
</html>


http://www.niftyadmin.cn/n/1425879.html

相关文章

教育网研究 根据一级id显示下面所有级id

String thirdiddbo.nextID("7"); // thirdid为11,12,13,14,34,多了一个逗号&#xff0c;下面蓝色的部分是进行处理 String hqldown"from Source_inf where in ("thirdid.substring(0,(thirdid.length()-1))") order by neworders"; DBOperato…

servlet学习 Cookie,页面计数

servlet API Filter,response.Cookie,request....1.myeclipse中可自动生成servlet 使用web.xml中的<url-pattern>中的内容就可以了。对掉最前面一个"/"&#xff0c;要不然就指到根目录去了 2 .request.getContextPath() 返回上下文路径 即发布名称3 Cookieim…

实用javabean 从注册到现在有几天,取时间,取中文

1.从注册到现在有几天DBOperator的一个方法 public int getTime1ToTime2(String Time1) { String StrDateTime1; int iStrDate.indexOf("-"); String ip1StrDate.substring(0,i); StrDateStrDate.substring(i1,StrDate.length()); iStrDate.indexOf("-"…

网站统计 季风流量统计系统

网站统计使用季风流量统计系统只要在每个页面中加入如下一句话就可以了 ,红色的地方替换成你数据库中的&#xff08;InfoList表中你设置的一条信息的admin字段.&#xff09; <jsp:include pagestat.jsp?idfacepp flushtrue/>

javamail 发邮件所需jar 包两个 activation.jar,mail.jar

javamail所需jar 包两个 activation.jar,mail.jar(放在邮箱里了) index.jsp 填写相关信息。用来发邮件的邮箱和密码一定要写对<% page contentType"text/html; charsetgb2312" language"java" errorPage"../error/error.jsp" %><!DOCT…

鲤鱼论坛mysql4.0+tomcat.rar

鲤鱼论坛mysql4.0tomcat.rar 附件 无中文乱码演示地址http://www.liyunet.com/bbs/index.jsp如果出现乱码&#xff08;JAVA的特权&#xff09;&#xff0c;请修改/WEB-INF/systemconfig.properties文件的#####################################################$######编码转…

JSF学习1

事件和监听器模型&#xff0c;用户界面组件&#xff0c; (通常使用Renderer灵活地表示 UI?)体系结构也是MVCFacesServlet Lifecycle ,FacesContextJSF户界面模型 UI组件类事件和监听器模型 显示模型验证模型 转换模型 组件显示模型组件的功能通常围绕着两个动作&…

嵌入页面的美化了的播放器和点击弹出多种格式的网页视频播放程序

1.嵌入页面的美化了的播放器播放FLV的 (JW FLV Media Player)http://www.jeroenwijering.com/upload/mediaplayer-3-16.zip 播放wmv的(JW WMV Player)http://www.jeroenwijering.com/upload/wmvplayer-1-0.zipREADME.HTML就是示例源文 http://www.jeroenwijering.com/ 点击顶部…