上传文件中的复制

来源:互联网 发布:python mock 编辑:程序博客网 时间:2024/06/08 16:26
上传文件中复制


对应的上传页面
添加标签 
 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>