1.文件上傳的條件
1)表單的提交方式必須是POST方式。(才有content-type屬性)
2)有文件上傳表單,表單中有<input type="file"/>的選擇文件的標簽
3)把表單設置為enctype="multipart/form-data",提交的數據不再是key-value對,而是字節數據
# jsp中的代碼
<form action="${pageContext.request.contextPath }/UploadDemo1" method="post" enctype="multipart/form-data">
請選擇文件: <input type="file" name="img"/><br/>
<input type="submit" value="上傳" />
</form>
2.自動書寫文件上傳的代碼
/**
* 手動處理上傳文件的邏輯
* @author APPle
*
*/
public class UploadDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到實體內容數據
InputStream in = request.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
//讀取文件的開始符
String startTag = br.readLine();
//讀取文件名: Content-Disposition: form-data; name="img"; filename="news.txt"
String line = br.readLine();
String fileName = line.substring(line.lastIndexOf("filename=\"")+10, line.lastIndexOf("\"") );
System.out.println("文件名:"+fileName);
//跳過2行
br.readLine();
br.readLine();
//讀取文件的實際內容
String str = null;
BufferedWriter bw = new BufferedWriter(new FileWriter("E:/files/"+fileName));
while((str=br.readLine())!=null){
//讀到文件結束符時退出循環
if((startTag+"--").equals(str)){
break;
}
//把內容寫出文件中
bw.write(str);
bw.newLine();
bw.flush();
}
//關閉
bw.close();
br.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。