您的位置:首页 > 编程语言

文件上传代码

2016-07-04 08:40 302 查看
1.0先在页面上初始化

代码

<title>文件上传</title>

</head>

<body>
<form enctype="multipart/form-data" action="test.jsp" method="post">
名称:<input type="text" name="username" /><br>
文件:<input type="file" name="myfile" /><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>


enctype=多部分的表单数据,并且如果form表单的属性中多了enctype="multipart/form-data",是不能使用request.getParameter(name属性的)

效果图



1.12:在WEB-ROOT的根目录下创建一个test.jsp,实现文件上传功能!

<%@page import="java.io.File"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.FileItem" %>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
//解决乱码
request.setCharacterEncoding("utf-8");
//将用户传递过来的request的内容显示出来,判断类型,如果是常规的普通表单,那么执行方式一
//否则是文件域,执行方式二
//01.判断是普通表单还是文件上传
boolean flag=ServletFileUpload.isMultipartContent(request);
if(flag)
{
//定义一个解析器,来解析请求中的各个项目
DiskFileItemFactory factory=new DiskFileItemFactory();
//解析upload创建成功
ServletFileUpload upload=new ServletFileUpload(factory);
List<FileItem> filelist=upload.parseRequest(request);
//每一个FileItem都代表了一个表单元素
Iterator<FileItem> mytor=filelist.iterator();
while(mytor.hasNext())
{
FileItem item=mytor.next();
if(item!=null)
{
//对当前进行验证,是普通表单还是文件上传
if(item.isFormField())    //证明是普通表单字段
{
//获取该表单元素内容(value值)
String name=item.getFieldName();
//表单的name属性而不是value值
if(name.equals("username"))
{
out.print(item.getString("utf-8"));
}

}else{//是文件上传
String filename=item.getName();
//扔到服务器目录下
String path="/WEB-INF/folder";//相对路径
String paths=this.getServletContext().getRealPath(path);
out.print(paths);
File file=new File(filename);
File uploadFile=new File(paths,file.getName());
item.write(uploadFile);
out.print("上传成功");
}
}
}
}

%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: