java上传组件_java上传组件FileUpload
如果表單中有文件要上傳,也就是有
就需要在form標簽中添加enctype="multipart/form-data"屬性 如果添加此屬性,在操作
頁面servlet中,用request.getParameter("name")獲取普通表單數據就會
出錯java.lang.NullPointerException
可以使用FileUpload組件操作上傳文件
1,導入jar包;commons-fileupload-1.2.2.jar commons-io-1.4.jar
上傳jsp頁面fileupload.jsp
pageEncoding="UTF-8"%>
上傳表單用戶名:
servlet頁面進行操作
package com.henau.fileupload;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class servletupload1 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
DiskFileItemFactory factory=new DiskFileItemFactory();//磁盤工廠
ServletFileUpload upload=new ServletFileUpload(factory);//創建處理工具
if(!upload.isMultipartContent(request)){//判斷是否有multipart/form-data
return;
}
upload.setHeaderEncoding("UTF-8");//解決中文文件名亂碼問題
upload.setFileSizeMax(10*1024*1024);//設置最大上傳文件10M
try {
List items=upload.parseRequest(request);//獲取表單列表
Iterator it=items.iterator();//獲取列表迭代器
while(it.hasNext()){
FileItem item=it.next();
String fieldname=item.getFieldName();
if(!item.isFormField()){//isFormField()是否是普通文本
response.getWriter().write(fieldname+":文件大小:"+item.getSize()+"
");
response.getWriter().write(fieldname+":文件名稱:"+item.getName()+"
");
response.getWriter().write(fieldname+":文件類型:"+item.getContentType()+"
");
}else{
response.getWriter().write(fieldname+":普通文本數據:"+item.getString("UTF-8")+"
");
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
頁面顯示效果
username:普通文本數據:用戶名
file1:文件大小:14
file1:文件名稱:IO流.txt
file1:文件類型:text/plain
file2:文件大小:2621
file2:文件名稱:javaSE需求.txt
file2:文件類型:text/plain
原文:http://www.cnblogs.com/lzzhuany/p/4977211.html
總結
以上是生活随笔為你收集整理的java上传组件_java上传组件FileUpload的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文准备:基于区块链的一些设计IIoT的
- 下一篇: 推荐21个顶级的Vue UI库! – T