1.上傳的使用

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);
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,301評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,924評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,954評論 6 342
  • 引言 在這個教程中,你會看到在Xcode提供的初始化代碼模板和數據模型編輯器資源中,用Swift語言寫出你的第一個...
    MarkLin閱讀 10,210評論 7 32