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;'>
<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= ' 文件名称:<input type="text" name="uploadFile['+i+'].mc" >选择文件:<input type="file" name="uploadFile['+i+'].theFile" > <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#编程环境中,实现多服务器多文件上传的实例是一个涉及网络编程、并发处理和分布式系统设计的重要技术问题。在大型应用或者云服务环境中,为了提高系统的可用性和可靠性,通常会采用多服务器集群架构。本实例就是...
本文将详细介绍如何利用 OpenResty + Nginx + Lua 实现一个文件服务器,该服务器支持文件上传与获取的功能。 #### 一、OpenResty 的安装与配置 **1. 下载 OpenResty** 开始前,首先需要下载 OpenResty,这是一个...
文件上传下载服务器是一种重要的网络服务,它为用户提供了一个方便、高效的方式来交换文件,特别是对于教育机构,如学校,教师可以利用这种服务收发作业、试卷等教学材料。在这个场景下,教师无需通过邮件或者传统的...
3. **服务器端接口**:文件上传通常需要服务器端的支持。在提供的文件列表中,`FileUpdate.php`表明服务器端可能使用PHP来处理文件。在PHP中,`$_FILES`全局变量用于接收上传的文件信息。服务器端代码会检查文件大小...
本篇文章将深入探讨如何使用Java来实现对Linux服务器的文件上传、操作、下载和删除,以及如何借助ganymed-ssh2库实现远程操作。 首先,让我们了解基础概念。Linux服务器是一种基于Linux操作系统并提供网络服务的...
记得在实际部署时,确保服务器端的安全配置,如验证客户端的身份,限制上传大小等,以防止恶意文件上传或过大文件导致服务器崩溃。 总之,通过WinForm实现文件上传至服务器涉及客户端的UI设计、文件选择逻辑、HTTP...
在IT领域,多线程是一种常见的编程技术,用于提高程序的执行效率,特别是在处理I/O密集型任务,如文件上传服务器时。在这个“多线程文件上传服务器”中,我们探讨的是如何利用多线程来优化文件上传服务,提高系统的...
4. **文件上传机制**:文件上传通常涉及将文件分割成多个数据块,然后通过网络发送到服务器。服务器需要接收这些数据块,重组为原始文件,并保存到硬盘上。同时,需要处理错误检测和恢复,以确保文件完整无损。 5. ...
### WinForm上传文件到服务器 #### 知识点概述 在.NET Framework中,Windows Forms(简称WinForms)是一种用于创建Windows...理解并掌握这些基本原理和技术细节,有助于开发者更好地开发出高效稳定的文件上传功能。
本场景涉及的是使用Java处理ZIP文件,解压后并将解压的文件上传至服务器。以下是对这一过程的详细阐述: 首先,我们需要理解`ZIP`文件格式。ZIP是一种常用的文件压缩格式,它能将多个文件或目录打包成一个单一的...
本文将详细解析如何在WinForm界面中实现文件上传至服务器的过程,并基于提供的压缩包文件"Upload_Win"来探讨其内容。 首先,我们需要在WinForm界面设计一个文件选择控件(通常使用OpenFileDialog),让用户能够选择...
好吧我随口说的,反正因为各种原因(其实到底是啥我也不知道),简单的学习了下python,然后写了一个上传文件上服务器的小玩具练手。 大概功能是这样: 1、获取本地文件列表(包括文件夹) 2、检查服务器上是否存在...
- 大多数服务器要求文件上传使用`multipart/form-data`格式,因为它可以携带多个部分,包括文件和额外的参数。 - 在Android客户端,可以使用`HttpURLConnection`的`setFixedLengthStreamingMode()`或`...
在Java开发中,文件上传是常见的功能之一,尤其在构建Web应用时,如服务器需要接收用户的图片、文档等数据。本项目"java 文件上传服务器,前后台代码"提供了一个完整的解决方案,涵盖了从客户端到服务器的数据传输...
1. **创建ashx文件**:首先,需要在服务器端创建一个处理文件上传的`ashx`文件。 2. **编写处理逻辑**:在`ashx`文件中编写具体的文件处理逻辑。 3. **客户端发起请求**:在客户端使用C# WinForm编写程序,向服务器...
在IT领域中,文件上传是一项非常常见的操作,它涉及到将本地计算机上的文件传输到远程服务器上。这一过程广泛应用于各种场景,比如网站开发、软件部署、数据备份等。理解如何有效地上传文件对于IT专业人士来说至关...
在Web应用程序中,通常使用Servlet API来处理服务器端的文件上传。`HttpServletRequest`对象提供了`getParts()`方法,可以用来获取上传的文件部分。你需要在Servlet中解析这些部分并保存到服务器的文件系统、数据库...
在Java编程环境中,当需要与Web服务器交互,例如上传文件时,`HttpURLConnection`是一个常见的选择,因为它提供了灵活且高效的方式。...在实际项目中,可能还需要处理错误、进度反馈、多文件上传等复杂情况。
而文件上传是Web应用中常见的一种功能,允许用户将本地文件传输到服务器。在这个项目中,我们利用C++和MFC来创建一个支持文件上传的HTTP服务器。 首先,我们需要理解MFC如何构建用户界面。MFC提供了许多类,如CWnd...