`
jjs_love
  • 浏览: 80973 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

多文件上传(服务器存文件)

阅读更多

jsp页面

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %>

 

<html:html locale="true">
  <head>
    <html:base />

<title>广州军区房地产管理局图片视频上传系统</title>

<style type="text/css">
<!--
body {
 margin-left: 0px;
 margin-top: 0px;
 margin-right: 0px;
 margin-bottom: 0px;
}
.style {
 border-bottom-width: 1px;
 border-bottom-style: solid;
 border-bottom-color: #afc4d9;
}

.file { font: 10pt; color: black; }
-->
</style>
<link href="css/style.css" rel="stylesheet" type="text/css">
<SCRIPT>
function CheckFile(str){

var reg=/^[A-Z]{1}\:\\(?!\s+)([^\\]+(?:\\))*([^\s]+(?:\.))+[^\.\s]+$/;
return Check(reg,str);

}

</SCRIPT>
</head>
<html:errors/>
<body>
<html:form  method="post"  action="ks.do?method=upload" enctype="multipart/form-data"> 
<table width="760"  border="0" align="center" cellpadding="0" cellspacing="0">

    <tr>
      <td align="left" valign="top"><table width="760" border=1 align="center" cellpadding=0 bordercolorlight=#afc4d9 bordercolordark=#ffffff bgcolor=#ffffff class=p1>
        <tr>
          <td width="1001" height="25" align="center" bgcolor="#CADDFD"><span class="bt">添加试题文件</span></td>
        </tr>
      </table>
        <table
            width="100%" border=1 cellpadding=0 bordercolorlight=#afc4d9 bordercolordark=#ffffff bgcolor=#ffffff class=p1 id=Table4>
          <tbody>
         
         

            <tr align="center" valign="middle">
              <td height="20">文件列表</td>
              <td height="20" align="left" valign="top">
   <div id="fileDiv"  style='height:150px;top:150px;left:0px;overflow-x:auto;overflow-y:auto ;border-style:outset;border-width:0pt;border-color:  black;'>
     &nbsp;&nbsp;&nbsp;
     <nested:iterate  id="uploadFile"  property="uploadfiles"  name="imgForm" indexId="index"> 
        <nested:nest  property="uploadFile"> 
         文件名称:<nested:text  property="mc"  name="uploadFile"  indexed="true"/> 
                  选择文件:<nested:file  property="theFile"  name="uploadFile"  indexed="true"/> 
        </nested:nest> 
   </nested:iterate>
         <table id=conditionTable border=0  >
      </table>
      </div>
   </td>
            </tr>
           
        </table>
        <table width="760" >
         
          <tr>
            <td width="760" height="26" align="center" valign="middle" bgcolor="#CADDFD" class="style">
            <table width="49%"  border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="right" valign="center">
    <input  type="button"  name="btnAddFile"  value="继续添加"  onclick="addFile()"/> 
    <input  type="submit"  name="submit"  value="上  传"  />  
    <input  type="button"  name="btnBack"  value="返  回"  onclick="javascript :window.location.href='http://37.51.176.64/House'"  />
    
      </td>
            </table></td>
          </tr>
      </table></td>
    </tr>
  </table>
</html:form> 
</body> 
</html:html>

<script  language="javascript">
 


var i=0;
      function addFile() {
       i++;
     currRow=conditionTable.insertRow();
     cellc=currRow.insertCell();
     cellcContext= '&nbsp;&nbsp;&nbsp;文件名称:<input type="text" name="uploadFile['+i+'].mc" >选择文件:<input type="file" name="uploadFile['+i+'].theFile" >&nbsp;&nbsp;<button onclick="removeFile();">删除</button><br>';
     cellc.innerHTML=cellcContext;

    }
   
   
function findTD(o){
if (o.nodeName=="TR"||o.nodeName=="TABLE") return;
if(o.nodeName=="TD")
return (o);
else
return (o.parentElement);
}


function removeFile(){
  o = findTD(event.srcElement);
 conditionTable.deleteRow(o.parentElement.rowIndex*1);
  i--;
}
 
 


function MutilUpload(){
  var cnt;
  var bl=true;
  for(cnt=0;cnt<=i;cnt++){
   bl=bl&&checkOneFile(cnt);

  }
    
  if(bl){
  
            document.forms[0].submit();
   return bl;
  }else
   return bl;
}
 
function checkOneFile(j){

 var eFile=document.getElementsByName("uploadFile["+j+"].theFile").item(0).value;
 if(eFile==''||eFile==null||!CheckFile(eFile)){
  alert('文件输入错误'+eFile);
  return false;
 }else
   return true;
}

</script>

formbean

package cn.com.house.view.struts.form;

import java.util.ArrayList;
import java.util.List;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;


import cn.com.house.data.bo.Ks;

public class ImagForm extends ActionForm  {
 private Ks ksvo=new Ks();
    private List uploadfiles;
    private FormFile fileContent;
    public ImagForm(){
  uploadfiles=new  ArrayList();
  uploadfiles.add(new UploadFile());
 }
 

 public UploadFile getUploadFile(int index) {
        int size = uploadfiles.size();
        if(index>0){
          uploadfiles.add(new UploadFile());
          size++;
         }
        return (UploadFile)uploadfiles.get(size-1);
 }

 public void setUploadFile(List uploadfiles) {
 
  this.uploadfiles = uploadfiles;
 }
 
 public List getUploadfiles() {
  return uploadfiles;
 }


 public Ks getKsvo() {
  return ksvo;
 }


 public void setKsvo(Ks ksvo) {
  this.ksvo = ksvo;
 }


 public FormFile getFileContent() {
  return fileContent;
 }


 public void setFileContent(FormFile fileContent) {
  this.fileContent = fileContent;
 }

 

 

 

 


}

Action

package cn.com.house.view.struts.action;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Random;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


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 org.apache.struts.upload.FormFile;

import cn.com.house.data.bo.Ks;
import cn.com.house.data.dao.impl.ArmynewsDAO;
import cn.com.house.view.struts.form.ImagForm;

import cn.com.house.view.struts.form.UploadFile;


public class KsAction  extends DispatchAction{
 private final static String  hql="from Ks as k where k.type=? order by k.id asc";
 private ArmynewsDAO  armynewsDAO;
    private String  filename;
    private String  filenamereal;
 public ArmynewsDAO getArmynewsDAO() {
  return armynewsDAO;
 }

 public void setArmynewsDAO(ArmynewsDAO armynewsDAO) {
  this.armynewsDAO = armynewsDAO;
 }
 
 
 public ActionForward kslist(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {
          saveToken(request);
          String type=request.getParameter("type");
          List list=armynewsDAO.findAllObj(hql,"1");
          request.setAttribute("list",list);
          String path="/ks/kslist.jsp?type="+type;
    return new ActionForward(path);
  
   }
 
 public ActionForward imgupload(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {
          saveToken(request);

    return new ActionForward("/ks/addimag.jsp");
  
   }
 
 public ActionForward del(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {
          String id=request.getParameter("id");
   
           armynewsDAO.delKs(new Long(id),getUploadPath());
           
             String path="/ks.do?method=kslist&type=1";
       return new ActionForward(path);
   }
 
 public ActionForward upload(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response)

 {
  
  ImagForm formvo=(ImagForm) form;
  if(isTokenValid(request,true)){
  List list=formvo.getUploadfiles();
  int size=list.size();
  String mc="";
  for(int i=0;i<size;i++){
   FormFile file=((UploadFile) list.get(i)).getTheFile();
   mc=((UploadFile) list.get(i)).getMc();
   if(file==null){
    
   }else{
    
    uploadfile(file);
    if(mc==null|| mc.equals("")){
     saveDB(this.getFilenamereal(),"1");
    }else{
     saveDB(mc,"1");
     
    }
    
   }
  } 
  }


           String path="/ks.do?method=kslist&type=1";
     return new ActionForward(path);
  }
 
 
 public ActionForward ks(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {

                 saveToken(request);
           return new ActionForward("/ks/ks.jsp");
  
   }
 
 public ActionForward reslut(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response)   {

   
          ImagForm formvo=(ImagForm) form;
        try{
    if(isTokenValid(request,true)){
     FormFile file= formvo.getFileContent();
     String mc="";
     mc=request.getParameter("mc");
     uploadfile(file);
     if(mc==null|| mc==""){
      
      saveDB(this.getFilenamereal(),"2");
     }else{
      saveDB(mc,"2");
      
     }
     request.setAttribute("result","ok");
                  
    }else{
     request.setAttribute("result","token");
     
    }
   
        }catch(Exception e){
       request.setAttribute("result","no");
        
        }
           return  new ActionForward("/ks/reslut.jsp");
  
   }
 
 
 public ActionForward reslutlist(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {
          saveToken(request);
          List list=armynewsDAO.findAllObj(hql,"2");
          request.setAttribute("list",list);
    return new ActionForward("/ks/reslutlist.jsp");
  
   }
 
 
 public ActionForward delreslut(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {
          String id=request.getParameter("id");
   
           armynewsDAO.delKs(new Long(id),getUploadPath());
           
     
           return  reslutlist(mapping,form,request,response);
  
   }
 

 
 
 public ActionForward getXls(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {
  try{
         String file=request.getParameter("file");
         String path=this.getUploadPath()+"/ks/Upload/"+file;
   response.reset();
   response.setContentType("application/vnd.ms-excel");  
   InputStream ips =new FileInputStream(path);       
   OutputStream ops=response.getOutputStream();  
   int   data=-1;  
   while((data   = ips.read())!=-1)   {  
     ops.write(data);
   }
   ops.flush();
   ips.close();
   
  }catch(Exception e){
   e.printStackTrace();
   
  }

    return  null;//kslist(mapping,form,request,response);
  
   }

 public void uploadfile(FormFile files)
    {
 
  PrintWriter buff=null;

  try{
   
   String formart = "yyyyMMddHHmmss";
   Random random = new Random();
   String fileName = new SimpleDateFormat(formart).format(new java.util.Date());
   fileName += Math.abs(random.nextInt()) % 100;
   String rndstr=fileName;
   //String rndstr=UUID.randomUUID().toString();
      String laststr=files.getFileName().substring(files.getFileName().lastIndexOf("."));
      String pst=files.getFileName().substring(0,files.getFileName().lastIndexOf("."));
      this.setFilenamereal(pst);
   String filename=files.getFileName().substring(0,files.getFileName().lastIndexOf(".")).concat(rndstr)+laststr;
      this.setFilename(filename);
   File newdir=new File(ArmynewsAction.getUploadPath()+"/ks/Upload/");
   if(!newdir.exists()){
    newdir.mkdir();
   }
   String path=ArmynewsAction.getUploadPath()+"/ks/Upload/"+filename;
   File savefile=new File(path);
   final int size=8192;
   InputStream input=files.getInputStream();
   BufferedInputStream buffinput=new BufferedInputStream(input);
         FileOutputStream fileout=new FileOutputStream(savefile);
   BufferedOutputStream buffout=new BufferedOutputStream(fileout);
   byte []buffer=new byte[size];
   while(buffinput.read(buffer,0,size)!=-1){
    buffout.write(buffer,0,size);
   }
   buffout.close();
   fileout.close();
   buffinput.close();
   input.close();
         
  }catch(Exception e){
   e.printStackTrace();
   
  }

 }
 
 

  
 public static  String getUploadPath(){
        String testStr=ArmynewsAction.class.getClassLoader().getResource("").getPath();
  testStr=testStr.substring(0,testStr.lastIndexOf("/"));
  testStr=testStr.substring(0,testStr.lastIndexOf("/"));
  testStr=testStr.substring(0,testStr.lastIndexOf("/"));
  testStr=URLDecoder.decode(testStr);
  return testStr;
 }
 
 
 public void  saveDB(String mc,String type){
  Ks kss=new Ks();
  kss.setPath(this.getFilename());
  kss.setType(type);
        kss.setMc(mc);
  armynewsDAO.saveObj(kss);
 }

 public String getFilename() {
  return filename;
 }

 public void setFilename(String filename) {
  this.filename = filename;
 }

 public String getFilenamereal() {
  return filenamereal;
 }

 public void setFilenamereal(String filenamereal) {
  this.filenamereal = filenamereal;
 }
 
 
 public ActionForward test(
   ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response) {
       
   
           armynewsDAO.delKs(new Long(1),getUploadPath());
           
     
           return  null;
  
   }
 
}

分享到:
评论

相关推荐

    C#多服务器多文件上传实例

    在C#编程环境中,实现多服务器多文件上传的实例是一个涉及网络编程、并发处理和分布式系统设计的重要技术问题。在大型应用或者云服务环境中,为了提高系统的可用性和可靠性,通常会采用多服务器集群架构。本实例就是...

    nginx搭建文件服务器上传文件获取文件

    本文将详细介绍如何利用 OpenResty + Nginx + Lua 实现一个文件服务器,该服务器支持文件上传与获取的功能。 #### 一、OpenResty 的安装与配置 **1. 下载 OpenResty** 开始前,首先需要下载 OpenResty,这是一个...

    文件上传下载服务器

    文件上传下载服务器是一种重要的网络服务,它为用户提供了一个方便、高效的方式来交换文件,特别是对于教育机构,如学校,教师可以利用这种服务收发作业、试卷等教学材料。在这个场景下,教师无需通过邮件或者传统的...

    VB上传本地文件到服务器

    3. **服务器端接口**:文件上传通常需要服务器端的支持。在提供的文件列表中,`FileUpdate.php`表明服务器端可能使用PHP来处理文件。在PHP中,`$_FILES`全局变量用于接收上传的文件信息。服务器端代码会检查文件大小...

    java上传文件到linux服务器,操作linux服务器上文件,下载linux服务器文件,删除linux服务器文件

    本篇文章将深入探讨如何使用Java来实现对Linux服务器的文件上传、操作、下载和删除,以及如何借助ganymed-ssh2库实现远程操作。 首先,让我们了解基础概念。Linux服务器是一种基于Linux操作系统并提供网络服务的...

    winform上传文件到服务器

    记得在实际部署时,确保服务器端的安全配置,如验证客户端的身份,限制上传大小等,以防止恶意文件上传或过大文件导致服务器崩溃。 总之,通过WinForm实现文件上传至服务器涉及客户端的UI设计、文件选择逻辑、HTTP...

    多线程文件上传服务器

    在IT领域,多线程是一种常见的编程技术,用于提高程序的执行效率,特别是在处理I/O密集型任务,如文件上传服务器时。在这个“多线程文件上传服务器”中,我们探讨的是如何利用多线程来优化文件上传服务,提高系统的...

    delphi做的文件上传下载服务器端

    4. **文件上传机制**:文件上传通常涉及将文件分割成多个数据块,然后通过网络发送到服务器。服务器需要接收这些数据块,重组为原始文件,并保存到硬盘上。同时,需要处理错误检测和恢复,以确保文件完整无损。 5. ...

    WinForm上传文件到服务器

    ### WinForm上传文件到服务器 #### 知识点概述 在.NET Framework中,Windows Forms(简称WinForms)是一种用于创建Windows...理解并掌握这些基本原理和技术细节,有助于开发者更好地开发出高效稳定的文件上传功能。

    ZIP文件解压上传服务器

    本场景涉及的是使用Java处理ZIP文件,解压后并将解压的文件上传至服务器。以下是对这一过程的详细阐述: 首先,我们需要理解`ZIP`文件格式。ZIP是一种常用的文件压缩格式,它能将多个文件或目录打包成一个单一的...

    winform实现把文件上传服务器功能

    本文将详细解析如何在WinForm界面中实现文件上传至服务器的过程,并基于提供的压缩包文件"Upload_Win"来探讨其内容。 首先,我们需要在WinForm界面设计一个文件选择控件(通常使用OpenFileDialog),让用户能够选择...

    python3写的简单本地文件上传服务器实例

    好吧我随口说的,反正因为各种原因(其实到底是啥我也不知道),简单的学习了下python,然后写了一个上传文件上服务器的小玩具练手。 大概功能是这样: 1、获取本地文件列表(包括文件夹) 2、检查服务器上是否存在...

    android 选择文件上传至服务器 包含服务器代码

    - 大多数服务器要求文件上传使用`multipart/form-data`格式,因为它可以携带多个部分,包括文件和额外的参数。 - 在Android客户端,可以使用`HttpURLConnection`的`setFixedLengthStreamingMode()`或`...

    java 文件上传服务器,前后台代码

    在Java开发中,文件上传是常见的功能之一,尤其在构建Web应用时,如服务器需要接收用户的图片、文档等数据。本项目"java 文件上传服务器,前后台代码"提供了一个完整的解决方案,涵盖了从客户端到服务器的数据传输...

    C# WinForm 上传图片 文件到服务器的方法

    1. **创建ashx文件**:首先,需要在服务器端创建一个处理文件上传的`ashx`文件。 2. **编写处理逻辑**:在`ashx`文件中编写具体的文件处理逻辑。 3. **客户端发起请求**:在客户端使用C# WinForm编写程序,向服务器...

    上传文件到服务器

    在IT领域中,文件上传是一项非常常见的操作,它涉及到将本地计算机上的文件传输到远程服务器上。这一过程广泛应用于各种场景,比如网站开发、软件部署、数据备份等。理解如何有效地上传文件对于IT专业人士来说至关...

    java上传文件到服务器

    在Web应用程序中,通常使用Servlet API来处理服务器端的文件上传。`HttpServletRequest`对象提供了`getParts()`方法,可以用来获取上传的文件部分。你需要在Servlet中解析这些部分并保存到服务器的文件系统、数据库...

    使用HttpUrlConnection实现上传文件 服务器端代码

    在Java编程环境中,当需要与Web服务器交互,例如上传文件时,`HttpURLConnection`是一个常见的选择,因为它提供了灵活且高效的方式。...在实际项目中,可能还需要处理错误、进度反馈、多文件上传等复杂情况。

    用mfc实现的http文件上传服务器

    而文件上传是Web应用中常见的一种功能,允许用户将本地文件传输到服务器。在这个项目中,我们利用C++和MFC来创建一个支持文件上传的HTTP服务器。 首先,我们需要理解MFC如何构建用户界面。MFC提供了许多类,如CWnd...

Global site tag (gtag.js) - Google Analytics