java文件上传(解析request流)
问题:JavaWeb中实现文件上传的方式有哪些?
JAVA+HttpServletRequest文件上传
Java后端 实现基本HttpRequest 上传文件
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
<form id = "f" name="f" method="post" enctype="multipart/form-data" action="UploadServerlet">
<table>
<tr><td><input type="file" name="file" id="file">请选择文件
<tr><td><button type="submit">提交button>
table>
form>
body>
html>
package com.cyj;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class UploadServerlet
*/
@WebServlet("/UploadServerlet")
public class UploadServerlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UploadServerlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream is = request.getInputStream();
StringBuffer sb = new StringBuffer();
int count = 0;
while(true){
int a = is.read();
sb.append((char)a);
if(a == '\r')
count++;
if(count==4){
is.read();
break;
}
}
String title = sb.toString();
System.out.println(title);
String[] titles = title.split("\r\n");
String fileName = titles[1].split(";")[2].split("=")[1].replace("\"","");
System.out.println(fileName);
FileOutputStream os = new FileOutputStream(new File("C:\Users\Administrator\Desktop\"+fileName));
byte[] ob = new byte[1024];
int length = 0;
while((length = is.read(ob, 0, ob.length))>0){
os.write(ob,0,length);
os.flush();
}
os.close();
is.close();
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)