javaWEB 的文件上传功能
2016-05-04 17:08
471 查看
1 、首先要知道 上传功能的实现,其实就是文件或照片的复制 (无非就是inputstream 和outputstream的使用)
2 、上传文件的位置选择
下面通过 两个JSP页面 和 一个servlet来做演示
1 、upload.jsp
<body>
<form action="<%=basePath %>upload" enctype="multipart/form-data" method="post">
上传用户:<input type="text" name="username"><br/>
上传文件1:<input type="file" name="file1"><br/>
<input type="submit" value="提交">
</form>
</body>
2、UploadServlet
public class UploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response){
String savePath="D:/fileupload";
File file=new File(savePath);
if(!file.exists()&&!file.isDirectory()){
file.mkdir();
}
String message="";
try{
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
if(!ServletFileUpload.isMultipartContent(request)){
return;
}
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
if(item.isFormField()){
String name = item.getFieldName();
String value = item.getString("UTF-8");
}else{
String filename = item.getName();
if(filename==null || filename.trim().equals("")){
continue;
}
filename = filename.substring(filename.lastIndexOf("\\")+1);
InputStream in = item.getInputStream();
FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
byte buffer[] = new byte[1024];
int len = 0;
while((len=in.read(buffer))>0){
out.write(buffer, 0, len);
}
in.close();
out.close();
item.delete();
message = "文件上传成功!";
}
}
}catch(Exception e){
message= "文件上传失败!";
e.printStackTrace();
}
request.setAttribute("message",message);
try {
request.getRequestDispatcher("/message.jsp").forward(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3、message.jsp
<body>
result:<%=request.getAttribute("message") %>
</body>
2 、上传文件的位置选择
下面通过 两个JSP页面 和 一个servlet来做演示
1 、upload.jsp
<body>
<form action="<%=basePath %>upload" enctype="multipart/form-data" method="post">
上传用户:<input type="text" name="username"><br/>
上传文件1:<input type="file" name="file1"><br/>
<input type="submit" value="提交">
</form>
</body>
2、UploadServlet
public class UploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response){
String savePath="D:/fileupload";
File file=new File(savePath);
if(!file.exists()&&!file.isDirectory()){
file.mkdir();
}
String message="";
try{
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
if(!ServletFileUpload.isMultipartContent(request)){
return;
}
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
if(item.isFormField()){
String name = item.getFieldName();
String value = item.getString("UTF-8");
}else{
String filename = item.getName();
if(filename==null || filename.trim().equals("")){
continue;
}
filename = filename.substring(filename.lastIndexOf("\\")+1);
InputStream in = item.getInputStream();
FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
byte buffer[] = new byte[1024];
int len = 0;
while((len=in.read(buffer))>0){
out.write(buffer, 0, len);
}
in.close();
out.close();
item.delete();
message = "文件上传成功!";
}
}
}catch(Exception e){
message= "文件上传失败!";
e.printStackTrace();
}
request.setAttribute("message",message);
try {
request.getRequestDispatcher("/message.jsp").forward(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3、message.jsp
<body>
result:<%=request.getAttribute("message") %>
</body>
相关文章推荐
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- 深入Spring
- Java加密技术(二)——对称加密算法DES&AES
- 字符串模式匹配中BF算法和KMP算法的java实现
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
- 【JAVA笔记】- Calendar 日期时间获取
- JAVA中类型后面跟三个点的使用问题
- 再认识java类的初始化
- java基础学习总结——super关键字
- java基础学习总结——equals方法
- java基础学习总结——static关键字
- java基础学习总结——流
- java基础学习总结——线程(二)
- java基础学习总结——线程(一)
- JAVA多线程——多线程的几种实现方法详解
- java图形验证码实现
- java中文筛选分词对比
- java基础学习总结——数组
- java实现顺序查找、二分查找、哈希表查找、二叉排序树查找
- java基础学习总结——面向对象1