用multipart/form-data提交表單檔案資料獲取不瞭解決辦法
阿新 • • 發佈:2018-12-20
在學習Servlet檔案上傳方面遇到了一個問題,就是通過multipart/form-data這個表單型別提交要上傳的檔案的時候,Servlet用request.getParameter()方法獲取非檔案的資料時發現為空。
具體如下
jsp頁面
<body> <form action="${pageContext.request.contextPath}/uppicture" method="post" enctype="multipart/form-data" > 暱稱:<input type="text" name="name"><br> <div> <img src="${image_path}" width="200" height="200"> </div> 頭像:<input type="file" name="uploadFile"> <input type="submit" value="上傳頭像"/> </form>
用String name=request.getParameter("name")時發現name的值為空
解決方法如下
通過遍歷,判斷哪些上傳是檔案型別,哪些不是,若是普通檔案型別,通過item.getFieldName()獲取普通表單的屬性,item.getString("UTF-8")獲取屬性對應的值。
List <FileItem> items = upload.parseRequest(request); //遍歷 for(FileItem item:items){ //若item為普通表單項 if(item.isFormField()){ //獲取表單中屬性名稱 String fieldName = item.getFieldName(); if(fieldName.equals("name")){ //獲取表單屬性的值 String name=item.getString("UTF-8"); } System.out.println(fieldName+"="+name);