文件的上傳對表單的要求
阿新 • • 發佈:2018-11-28
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(); } }
文件的上傳對表單的要求