
package com.clcud.fileupload; |
import java.io.File; |
import java.io.FileInputStream; |
import java.io.FileOutputStream; |
import java.io.PrintWriter; |
import java.util.List; |
import javax.servlet.ServletContext; |
import org.apache.struts2.ServletActionContext; |
import com.opensymphony.xwork2.ActionSupport; |
public class FileUplode extends ActionSupport{ |
private List<File> myfile; |
private List<String> myfileContentType; |
private List<String> myfileFileName; |
private static final long serialVersionUID = 1L; |
@Override |
public String execute() throws Exception { |
System.out.println("------------------------------"); |
System.out.println("========>"+myfile); |
System.out.println("========>"+myfileContentType); //text/plain |
System.out.println("========>"+myfileFileName); //英语.txt |
System.out.println("------------------------------"); |
ServletContext context = ServletActionContext.getServletContext(); |
for(int i = 0;i<myfile.size();i++){ |
File f = myfile.get(i); |
String path = context.getRealPath("/"+myfileFileName.get(i)); //E:\J2EE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Shop\肉菜.txt |
System.out.println(path); |
FileOutputStream out = new FileOutputStream(path); |
FileInputStream in = new FileInputStream(f); |
int len = 0; |
byte[] buffer = new byte[1024]; |
while( (len = in.read(buffer))!=-1){ |
out.write(buffer, 0, len); |
} |
in.close(); |
out.close(); |
} |
//异步提交必须返回数据和return NONE |
PrintWriter out = ServletActionContext.getResponse().getWriter(); |
out.print("{\"flog\":\"success\"}"); |
return NONE; |
} |
public List<File> getMyfile() { |
return myfile; |
} |
public void setMyfile(List<File> myfile) { |
this.myfile = myfile; |
} |
public List<String> getMyfileContentType() { |
return myfileContentType; |
} |
public void setMyfileContentType(List<String> myfileContentType) { |
this.myfileContentType = myfileContentType; |
} |
public List<String> getMyfileFileName() { |
return myfileFileName; |
} |
public void setMyfileFileName(List<String> myfileFileName) { |
this.myfileFileName = myfileFileName; |
} |
} |
//--------------------------------------------------------------------------------------------------------------------------------------------------------- |
// 前端代码 |
//--------------------------------------------------------------------------------------------------------------------------------------------------------- |
<%@ page language="java" contentType="text/html; charset=UTF-8" |
pageEncoding="UTF-8"%> |
<% |
String path = request.getContextPath(); |
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; |
%> |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
<title>Insert title here</title> |
<link rel="stylesheet" type="text/css" href="<%=basePath %>fileupload/css/bootstrap.min.css" /> |
<link rel="stylesheet" type="text/css" href="<%=basePath %>fileupload/css/fileinput.min.css" /> |
<script src="<%=basePath %>fileupload/js/jquery.3.0.js" type="text/javascript" charset="utf-8"></script> |
<script src="<%=basePath %>fileupload/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script> |
<script src="<%=basePath %>fileupload/js/fileinput.js" type="text/javascript" charset="utf-8"></script> |
<script src="<%=basePath %>fileupload/js/locales/zh.js" type="text/javascript" charset="utf-8"></script> |
</head> |
<body> |
<form> |
<!-- |
multiple表示允许同时上传多个文件,class=“file-loading”表示标签的样式。这里很重要,如果class="file",则中文化不能生效。 |
--> |
<input type="file" name="myfile" id="file-Portrait1" multiple class="file-loading"> |
</form> |
</body> |
</html> |
<script type="text/javascript"> |
$(function () { |
var control = $('#file-Portrait1'); |
//初始化上传控件的样式 |
control.fileinput({ |
language: 'zh', //设置语言 |
uploadUrl: '/struts2/fileupload.do', //上传的地址 |
//allowedFileExtensions: ['jpg', 'gif', 'png'],//接收的文件后缀 |
showUpload: true, //是否显示上传按钮 |
showCaption: true,//是否显示标题 |
showPreview: true,//是否预览 |
dropZoneEnabled: true,//是否显示拖拽区域 |
uploadAsync: true, //异步上传 |
browseClass: "btn btn-primary", //按钮样式 |
maxFileSize: 0,//单位为kb,如果为0表示不限制文件大小 |
//minImageWidth: 50, //图片的最小宽度 |
//minImageHeight: 50,//图片的最小高度 |
//maxImageWidth: 1000,//图片的最大宽度 |
//maxImageHeight: 1000,//图片的最大高度 |
//minFileCount: 0, |
maxFileCount: 100, //表示允许同时上传的最大文件个数 |
enctype: 'multipart/form-data', |
validateInitialCount:true, |
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>", |
msgFilesTooMany: "选择上传的文件数量{n} 超过允许的最大数值{m}!" |
}); |
control.on("fileuploaded", function(event, data, previewId, index) { |
console.log(event); |
console.log(data.response);//返回的数据 |
console.log(previewId); |
console.log(index); |
}); |
}); |
</script> |
//--------------------------------------------------------------------------------------------------------------------------------------------------------- |
struts2 配置文件 |
//--------------------------------------------------------------------------------------------------------------------------------------------------------- |
<?xml version="1.0" encoding="UTF-8" ?> |
<!DOCTYPE struts PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" |
"http://struts.apache.org/dtds/struts-2.5.dtd"> |
<struts> |
<!-- 指定由spring负责action对象的创建 |
<constant name="struts.objectFactory" value="spring" /> |
--> |
|
<!-- 请求参数的编码方式 --> |
<constant name="struts.i18n.encoding" value="UTF-8"/> |
<!-- 指定被struts2处理的请求后缀类型。多个用逗号隔开 --> |
<constant name="struts.action.extension" value="action,do,go,qqi"/> |
<!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开 --> |
<constant name="struts.configuration.xml.reload" value="true"/> |
<!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开 --> |
<constant name="struts.devMode" value="true"/> |
<!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭 --> |
<constant name="struts.serve.static.browserCache" value="false" /> |
<!-- 是否开启动态方法调用 --> |
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> |
<package name="default2" namespace="/" extends="struts-default"> |
<action name="fileupload" class="com.clcud.fileupload.FileUplode"> |
<result name="success">/index.jsp</result> |
<interceptor-ref name="fileUpload"> |
<param name="maximumSize">5555000000</param><!-- 5555000000 1048576 --> |
</interceptor-ref> |
<interceptor-ref name="defaultStack"></interceptor-ref> |
</action> |
</package> |
</struts> |




by: 发表于:2017-07-07 15:48:26 顶(0) | 踩(0) 回复
??
回复评论