JAVA中图片上传资料

来源:互联网 发布:人工智能时代的危机 编辑:程序博客网 时间:2024/05/16 09:24

//upload.jsp

<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
<jsp:directive.page import="util.setting.System"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
String basepath = request.getContextPath();
String pathadd = request.getParameter("pathadd");
String filenamename = request.getParameter("filenamename");
String databasepathname = request.getParameter("databasepathname");
%>
<html>
<head>
<link rel="stylesheet" type="text/css" href="<%=basepath%>/css/table.css">
<script language="javascript" src="<%=basepath%>/js/check.js"></script>
<script language="javascript">
function FormCheck(){
var file = document.getElementById("file");
file.value = Trim(file.value);
if(IsEmpty(file.value)){
alert("请选择要上传的文件!");
return false;
}
return true;
}
</script>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>附件上传</title>
<style type=text/css>
a{color:blue;font-family=楷体_GB2312;size:3;text-decoration:none;font-weight:bold}
</style>
</head>
<body background=<%=basepath%>/images/bgmain.JPG style="margin-top:0">
<br>
<p align="center"><b><font face="楷体_GB2312" size="3" color="#008080">附件上传</font></b></p>
<form name="uploadActionForm" action="<%=basepath%>/UploadAction.do?method=upload" method="post" enctype="multipart/form-data" onSubmit="return FormCheck();">
<input type="hidden" name="basepath" value="<%=basepath%>">
<input type="hidden" name="pathadd" value="<%=pathadd%>">
<input type="hidden" name="filenamename" value="<%=filenamename%>">
<input type="hidden" name="databasepathname" value="<%=databasepathname%>">
<div align="center">
<table bgcolor=<%=System.getTableColor()%> border=1 width="78%" bordercolorlight="#C0C0C0" bordercolordark="#808080" style="border-collapse: collapse" id="table1">
<tr>
<td>请选择附件</td>
<td colspan="3"><input type="file" name="file"></td>
</tr>
</table>
</div>
<p align="center"><input type="submit" name="submit" value="上传"><input type="reset" value="重置" name=""></p>
</form>
</body>
</html>

//uploadresult.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<jsp:directive.page import="util.setting.System"/>
<jsp:directive.page import="util.upload.UploadActionForm"/>

<%
String basepath = request.getContextPath();
%>
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="<%=basepath%>/css/body.css">
<script language="javascript" src="<%=basepath%>/js/check.js"></script>
<script language="javascript">
function init(){
var databasepath = document.getElementById("databasepath").value;
var filename = document.getElementById("filename").value;
var databasepathname = document.getElementById("databasepathname").value;
var filenamename = document.getElementById("filenamename").value;
if(!IsEmpty(databasepath)){
window.opener.document.getElementById(databasepathname).value=databasepath;
window.opener.document.getElementById(filenamename).value=filename;
window.opener.document.getElementById("isuploaded").value= "yes";
}
}
function UploadOver(){
var databasepath = document.getElementById("databasepath").value;
if(!IsEmpty(databasepath)){
window.close();
}
else{
window.history.back();
}
}
</script>
</head>
<body onload="init();" bgcolor=<%=System.getTableColor()%>>
<%
UploadActionForm form = (UploadActionForm)request.getAttribute("form");
out.println(form.getErrormsg());
String databasepath = form.getDatabasepath();
if(databasepath == null){
databasepath = "";
}
String filename = form.getFilename();
if(filename == null){
filename = "";
}
%>
<input type="hidden" name="filenamename" value="<%=form.getFilenamename()%>">
<input type="hidden" name="databasepathname" value="<%=form.getDatabasepathname()%>">
<input type="hidden" name="databasepath" value="<%=databasepath%>">
<input type="hidden" name="filename" value="<%=filename%>">
<br><br>
<input type="button" value="确定" onclick="UploadOver();">
</body>
</html>

//UploadActionForm

package util.upload;

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

public class UploadActionForm extends ActionForm{
private static final long serialVersionUID = 1L;
private FormFile file;
private String errormsg;
private String pathadd;
private String databasepath;
private String filename;

//相关数据库的ActionForm中的路径字段和文件名称字段的名称
private String databasepathname;
private String filenamename;

public FormFile getFile() {
return file;
}
public void setFile(FormFile file) {
this.file = file;
}
public String getErrormsg() {
return errormsg;
}
public void setErrormsg(String errormsg) {
this.errormsg = errormsg;
}
public String getPathadd() {
return pathadd;
}
public void setPathadd(String pathadd) {
this.pathadd = pathadd;
}
public String getDatabasepath() {
return databasepath;
}
public void setDatabasepath(String databasepath) {
this.databasepath = databasepath;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getDatabasepathname() {
return databasepathname;
}
public void setDatabasepathname(String databasepathname) {
this.databasepathname = databasepathname;
}
public String getFilenamename() {
return filenamename;
}
public void setFilenamename(String filenamename) {
this.filenamename = filenamename;
}

}

//UploadAction

package util.upload;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Date;

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 basicresource.space.Area;
import basicresource.space.AreaDAO;
import util.TimeFormat;
import util.setting.System;

public class UploadAction extends DispatchAction{
public ActionForward upload(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception{
UploadActionForm newform = (UploadActionForm)form;

FormFile file = newform.getFile();
InputStream fileInputStream = file.getInputStream();
int filesize = file.getFileSize();
String filename = file.getFileName();
filename = filename.toLowerCase();
//取得系统设置的允许上传文件类型,大小,和上传的cache
String[] allow_filetypes = System.getUploadFileTypes();
int allow_filesize = System.getUploadFileSize();
int fileCache = System.getUploadFileCache();

boolean isok = false;
String filetype = "";
for(int i=0;i<allow_filetypes.length;i++){
if(filename.endsWith(allow_filetypes[i])){
isok = true;
filetype = allow_filetypes[i];
break;
}
}

if("".equals(filename)){
newform.setErrormsg("请选择您要上传的文件!");
}
else if(!isok){
newform.setErrormsg("上传失败,格式不允许!");
}
else if(filesize>allow_filesize){
newform.setErrormsg("上传失败,文件太大!");
}
else{
String filePath = getServlet().getServletContext().getRealPath("/") +newform.getPathadd();

//将文件重新命名
String newfilename = "";
String areaid = (String)request.getSession().getAttribute("Areaid");
Area area = AreaDAO.getAreaByAreaid(areaid);
newfilename += area.getAreaenglishab();
Date date = new Date();
newfilename += TimeFormat.dateToString("yyyyMMddHHmm", date);
newfilename += filetype;

File fileCreate = new File(filePath,newfilename);
if(fileCreate.exists()){
newform.setErrormsg("上传目录存在同名文件,请重命名再上传!");
}
else{
FileOutputStream fileOutputStream = new FileOutputStream(fileCreate);
byte[] buffer = new byte[fileCache];
while((fileInputStream.read(buffer,0,fileCache))!=-1){
fileOutputStream.write(buffer, 0, fileCache);
}
fileOutputStream.flush();
fileOutputStream.close();
fileInputStream.close();
newform.setDatabasepath(newform.getPathadd()+"/"+newfilename);
newform.setFilename(filename);
newform.setErrormsg("上传成功!");
}

}
request.setAttribute("form", newform);
return mapping.findForward("upload");
}
}

原创粉丝点击