上传文件中的复制

本文介绍如何使用Struts框架实现文件上传功能,包括配置form表单的enctype属性为multipart/form-data,设置Action处理文件上传流程,以及在struts.xml中定义相应的Action。
上传文件中复制


对应的上传页面
添加标签 
 1.在JSP的顶部引入标记库指令 

<%@taglib uri="/struts=tags"prefix="s"%>


 其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencoded".这个属性管理的是表单的MIME编码,共有三个值可选:

①application/x-www-form-urlencoded (默认值)

②multipart/form-data

③text/plain  其中①application/x-www-form-urlencoded是默认值,


解释如下
①application/x-www-form-urlencoded是默认值,大家可能在AJAX里见过这 个:xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlencoded"); 这两个要做的是同一件事情,就是设置表单传输的编码。在AJAX里不写有可能会报错,但是在HTML的form表单里是可以不写 enctype="application/x-www-form-urlencoded"的,因为默认HTML表单就是这种传输编码类型。而 ②multipart-form-data是用来指定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或者mp3等等。 ③text/plain是纯文本传输的意思,在发送邮件时要设置这种编码类型,否则会出现接收时编码混乱的问题,网络上经常拿text/plain和 text/html做比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上。①和③都不能用 于上传文件,只有multipart/form-data才能完整的传递文件数据。 




<form action="${pageContext.request.contextPath}/fileUpload" method="post" enctype="multipart/form-data">
<input type ="file"name="xxoo"/>   这个名字后面还要用到
<input type="submit"value="提交"/>
</form>
2.建立Action文件


private File xxoo;
private String xxooFileName;            名字+FileName;  
设置器和访问器
public String fileUpload(){
1.确定上传路径
String path =ServletActionContextgetServletContext().getREalPath("upload");
2.创建目标文件夹 
File targetDir=new File (path);
if(!targetDir.exists()){
targetDir.mkdirs();
}
3.创建目标文件对象
File targetFile=new File(targetDir,xxooFileName);
4.复制文件  也可以选择剪切 


try {
FileUtils.copyFile(xxoo, targetFile);
      } catch (IOException e) {

e.printStackTrace();
}
return SUCCESS;
}



}


上传 3. struts.xml 里面添加的内容 
<package name="fileUpload" namespace="/" extend="struts-default">
<action name ="fileUpload"class="action.fileAction" method="fileUpload">
<result>/index.jsp</result>

</action>

</package>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值