要求:页面上有两个按钮,一个为添加按钮,另一个为上传按钮。
当点击添加按钮时,会出现一个文本框和一个浏览按钮,点击浏览按钮,选择文件,文件的路径会在文本框中显示出来。当点击上传按钮时,能够将文件上传到指定的位置。
首先,要建立一个jsp页面
上传的文件最大为2兆
<div align="center">
<form action="${pageContext.request.contextPath}/upFiles.action" enctype="multipart/form-data"method="post">
上传文件:<br/>
<div id="ul">
</div>
<input type="submit" value="上传"/>
</form>
<input type="button" id="btn"name="btn" value="添加"/>
</div>
</body>
</html>
<<script type="text/javascript">
<!--
$(document).ready(function(){
$("#btn").click(function(){
//创建input
var$input=$("<input type='file' name='upload'>");
var$br=$("<br/>");
$("#ul").append($input);
$("#ul").append($br);
});
});
//-->
</script>
注:记得要引入jQuery类库文件
<script type="text/javascript" src="./js/jquery-1.7.1.js"></script>
struts.xml文件
<action name="upFiles"class="cn.csdn.hr.action.UploadsAction" method="uploads" >
<result>./ul.jsp</result>
</action>
由上面的struts.xml文件可知,下面要调用包cn.csdn.hr.action下面的UploadsAction.class类中的uploads方法,并且将返回ul.jsp页面
UploadsAction.class
//规定
private File upload[];//上传文件
//上传文件的类型
private String uploadContentType[];//名字必须是这个
//上传文件的名称
private String uploadFileName[];//名字必须是这个
public File[] getUpload() {
return upload;
}
public void setUpload(File[] upload) {
this.upload = upload;
}
public String[] getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String[] uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String[] getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String uploads(){
String path=ServletActionContext.getServletContext().getRealPath("/ims");
System.out.println(path);
File file=new File(path);
//判断file文件是否存在
if(!file.exists()){
file.mkdirs();
}
//第一个是准备上传的文件 第二个是上传到哪
try{
for(int i=0;i<upload.length;i++){
FileUtils.copyFile(upload[i], new File(file,uploadFileName[i]));
}
}catch(IOException e){
e.printStackTrace();
}
System.out.println("上传文件 的名称:"+getUploadFileName()+"===================上传文件的类型"+getUploadContentType());
return SUCCESS;
}