📄 534699.xml
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>140</credit>
<TopicId>534699</TopicId>
<TopicName>如何实现文件上传</TopicName>
<PostUserId>164255</PostUserId>
<PostUserName>yuri</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>2</ReplyNum>
<PostDateTime>2002-2-20 20:14:24</PostDateTime>
<Point>100</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>如何在Web页上实现文件上传</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>100</credit>
<ReplyID>3586827</ReplyID>
<TopicID>534699</TopicID>
<PostUserId>98264</PostUserId>
<PostUserName>mfc42d</PostUserName>
<Point>100</Point>
<Content>give you a example split two parts
public class UploadServlet extends HttpServlet 
{ 
//default maximum allowable file size is 100k 
static final int MAX_SIZE = 102400; 
//instance variables to store root and success message 
String rootPath, successMessage; 
/** 
 * init method is called when servlet is initialized. 
 */ 
public void init(ServletConfig config) throws ServletException 
{ 
super.init(config); 
//get path in which to save file 
rootPath = config.getInitParameter("RootPath"); 
if (rootPath == null) 
{ 
rootPath = "/"; 
} 
/*Get message to show when upload is complete. Used only if 
a success redirect page is not supplied.*/ 
successMessage = config.getInitParameter("SuccessMessage"); 
if (successMessage == null) 
{ 
successMessage = "File upload complete!"; 
} 
} 
/** 
 * doPost reads the uploaded data from the request and writes 
 * it to a file. 
 */ 
public void doPost(HttpServletRequest request, 
HttpServletResponse response) 
{ 
ServletOutputStream out=null; 
DataInputStream in=null; 
FileOutputStream fileOut=null; 
try 
{ 
/*set content type of response and get handle to output 
stream in case we are unable to redirect client*/ 
response.setContentType("text/plain"); 
out = response.getOutputStream(); 
} 
catch (IOException e) 
{ 
//print error message to standard out 
System.out.println("Error getting output stream."); 
System.out.println("Error description: " + e); 
return; 
} 
try 
{ 
//get content type of client request 
String contentType = request.getContentType(); 
//make sure content type is multipart/form-data 
if(contentType != null && contentType.indexOf( 
"multipart/form-data") != -1) 
{ 
//open input stream from client to capture upload file 
in = new DataInputStream(request.getInputStream()); 
//get length of content data 
int formDataLength = request.getContentLength(); 
//allocate a byte array to store content data 
byte dataBytes[] = new byte[formDataLength]; 
//read file into byte array 
int bytesRead = 0; 
int totalBytesRead = 0; 
int sizeCheck = 0; 
while (totalBytesRead < formDataLength) 
{ 
//check for maximum file size violation 
sizeCheck = totalBytesRead + in.available(); 
if (sizeCheck > MAX_SIZE) 
{ 
out.println("Sorry, file is too large to upload."); 
return; 
} 
bytesRead = in.read(dataBytes, totalBytesRead, 
formDataLength); 
totalBytesRead += bytesRead; 
} 
//create string from byte array for easy manipulation 
String file = new String(dataBytes); 
//since byte array is stored in string, release memory 
dataBytes = null; 
/*get boundary value (boundary is a unique string that 
separates content data)*/ 
int lastIndex = contentType.lastIndexOf("="); 
String boundary = contentType.substring(lastIndex+1, 
contentType.length()); 
//get Directory web variable from request 
String directory=""; 
if (file.indexOf("name=\"Directory\"") > 0) 
{ 
directory = file.substring( 
file.indexOf("name=\"Directory\"")); 
//remove carriage return 
directory = directory.substring( 
directory.indexOf("\n")+1); 
//remove carriage return 
directory = directory.substring( 
directory.indexOf("\n")+1); 
</Content>
<PostDateTime>2002-2-20 20:17:34</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>100</credit>
<ReplyID>3586833</ReplyID>
<TopicID>534699</TopicID>
<PostUserId>98264</PostUserId>
<PostUserName>mfc42d</PostUserName>
<Point>0</Point>
<Content>//get Directory 
directory = directory.substring(0, 
directory.indexOf("\n")-1); 
/*make sure user didn't select a directory higher in 
the directory tree*/ 
if (directory.indexOf("..") > 0) 
{ 
out.println("Security Error: You can't upload " + 
"to a directory higher in the directory tree."); 
return; 
} 
} 
//get SuccessPage web variable from request 
String successPage=""; 
if (file.indexOf("name=\"SuccessPage\"") > 0) 
{ 
successPage = file.substring( 
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -