1. 程式人生 > >文件的上傳對表單的要求

文件的上傳對表單的要求

ont exceptio isf file NPU 類型 reg 內容類型 ram

<!-- 
上傳文件:表單要求
1,enctype="multipart/form-data"
2.表單中需要有type="file"的input
3.表單的請求方式一定是POST。即method="post"
servlet要求
1.不能使用request.getParameter
2.使用request.getInputStream

 -->
<form action="/file_upload/RegistServlet" method="post" enctype="multipart/form-data">
    用戶:<input name="username" type="text"><br>
    註冊:
<input name="password" type="password"><br> 照片:<input name="pic" type="file" ><br> <input type="submit" value="提交"> </form>
        //獲得復雜類型表單的輸入流
        InputStream in = request.getInputStream();
        //獲得輸入流的內容
        String result = IOUtils.toString(in);

fileUpload的簡單應用

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //創建接受文件的工廠類
        DiskFileItemFactory factory = new DiskFileItemFactory();
        //創建文件解析對象
        ServletFileUpload sfu = new ServletFileUpload(factory);
        
        
try { //解析request,獲得表單中的每一文件(包含普通文本域)項 List<FileItem> list = sfu.parseRequest(request); //遍歷每一個文本項 for(FileItem fi : list){ //獲得原始文件名 String origFileName = fi.getName(); //獲得文本域項的內容 String content = fi.getString(); //獲得文本域的名字 String fieldName = fi.getFieldName(); //文本域的內容的類型 String ContentType = fi.getContentType(); //獲得文件的大小(以字節為單位) long size = fi.getSize(); //是否是普通文本(普通文本就是非長傳文件形式的文本)true代表普通字段,false是文件字段 boolean isFieldForm = fi.isFormField(); System.out.println("原始文件名:"+origFileName); System.out.println("文本項的內容:"+content); System.out.println("文本域的名字:"+fieldName); System.out.println("文本域的內容類型:"+ContentType); System.out.println("文件大小:"+size); System.out.println("是否是普通字段:"+isFieldForm); System.out.println("-----------------------------------"); } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

文件的上傳對表單的要求