資源簡(jiǎn)介
使用springmvc+mybatis從頁(yè)面進(jìn)行hadoop2.6 HDFS文件系統(tǒng)的上傳,下載和列表展示的Demo希望對(duì)大家有用。
代碼片段和文件信息
package?cn.demo.controller;
import?java.io.BufferedOutputStream;
import?java.io.ByteArrayInputStream;
import?java.io.FileInputStream;
import?java.io.IOException;
import?java.io.InputStream;
import?java.net.URI;
import?java.net.URISyntaxException;
import?java.util.ArrayList;
import?java.util.Iterator;
import?java.util.UUID;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?org.apache.hadoop.conf.Configuration;
import?org.apache.hadoop.fs.FSDataInputStream;
import?org.apache.hadoop.fs.FSDataOutputStream;
import?org.apache.hadoop.fs.FileStatus;
import?org.apache.hadoop.fs.FileSystem;
import?org.apache.hadoop.fs.Path;
import?org.apache.hadoop.io.IOUtils;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.stereotype.Controller;
import?org.springframework.ui.Model;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RequestParam;
import?org.springframework.web.multipart.MultipartFile;
import?org.springframework.web.multipart.MultipartHttpServletRequest;
import?org.springframework.web.multipart.commons.CommonsMultipartFile;
import?org.springframework.web.multipart.commons.CommonsMultipartResolver;
import?cn.demo.domain.FileBean;
import?cn.demo.service.IFileService;
@Controller
@RequestMapping(“/file“)
public?class?FileController?{
@Autowired
private?IFileService?fileService;
//使用springMVC解析器進(jìn)行文件上傳
@RequestMapping(“/uploadToHDFS2.action“)
public?String?uploadToHDFS2(HttpServletRequest?requestHttpServletResponse?response)?throws?IllegalStateException?IOException?Exception?URISyntaxException{
//創(chuàng)建一個(gè)通用的多部分解析器
CommonsMultipartResolver?multipartResolver?=?new?CommonsMultipartResolver(request.getSession().getServletContext());
if(multipartResolver.isMultipart(request)){
//轉(zhuǎn)換成多部分request??
MultipartHttpServletRequest?multiRequest?=?(MultipartHttpServletRequest)request;
//取得request中的所有文件名
Iterator?iter?=?multiRequest.getFileNames();
while(iter.hasNext()){
//取得上傳文件
MultipartFile?file?=?multiRequest.getFile(iter.next());
if(file?!=?null){
//取得當(dāng)前上傳文件的文件名稱
String?myFileName?=?file.getOriginalFilename();
//如果名稱不為“”說(shuō)明該文件存在,否則說(shuō)明該文件不存在
if(myFileName.trim()?!=““){
System.out.println(“======>“+myFileName);
//文件名
String?fileName?=?file.getOriginalFilename();
String?filePath?=?“/1127/“+fileName;
//--------------------------------------------
//上傳到hdfs
Configuration?configuration?=?new?Configuration();
????configuration.addResource(“/core-site.xml“);
????configuration.addResource(“/hdfs-site.xml“);
????FileSystem?fs?=?FileSystem.get(new?URI(“hdfs://ns1“)configuration?“root“);
byte[]?bytes?=?file.getBytes();
InputStream?inputStream?=?new?ByteArrayInputStream(bytes);
FSDataOutputStream?outputStream?=?fs
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\
?????文件?????????886??2015-12-01?14:57??HDFSWeb\.classpath
?????文件????????1040??2015-11-27?11:37??HDFSWeb\.project
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\.settings\
?????文件?????????503??2015-11-27?11:37??HDFSWeb\.settings\.jsdtscope
?????文件?????????364??2015-11-27?11:37??HDFSWeb\.settings\org.eclipse.jdt.core.prefs
?????文件?????????550??2015-12-01?14:57??HDFSWeb\.settings\org.eclipse.wst.common.component
?????文件?????????345??2015-11-27?11:37??HDFSWeb\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件??????????49??2015-11-27?11:37??HDFSWeb\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2015-11-27?11:37??HDFSWeb\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\build\
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\build\classes\
?????文件????????2965??2015-12-01?14:57??HDFSWeb\build\classes\beans.xm
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\build\classes\cn\
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\build\classes\cn\demo\
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\build\classes\cn\demo\controller\
?????文件????????8196??2015-12-01?15:00??HDFSWeb\build\classes\cn\demo\controller\FileController.class
?????目錄???????????0??2015-12-01?14:59??HDFSWeb\build\classes\cn\demo\dao\
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\build\classes\cn\demo\domain\
?????文件????????2278??2015-12-01?14:57??HDFSWeb\build\classes\cn\demo\domain\FileBean.class
?????文件?????????925??2015-12-01?14:57??HDFSWeb\build\classes\cn\demo\domain\ResFile.class
?????文件?????????215??2015-12-01?14:57??HDFSWeb\build\classes\cn\demo\domain\ResFileMapper.xm
?????目錄???????????0??2015-12-01?15:02??HDFSWeb\build\classes\cn\demo\service\
?????文件?????????664??2015-12-01?15:00??HDFSWeb\build\classes\cn\demo\service\FileServiceImpl.class
?????文件?????????181??2015-12-01?14:57??HDFSWeb\build\classes\cn\demo\service\IFileService.class
?????文件????????1197??2015-12-01?14:57??HDFSWeb\build\classes\core-site.xm
?????文件????????2440??2015-12-01?14:57??HDFSWeb\build\classes\hdfs-site.xm
?????文件?????????158??2015-12-01?14:57??HDFSWeb\build\classes\jdbc.properties
?????文件?????????663??2015-12-01?14:57??HDFSWeb\build\classes\log4j.properties
?????文件????????1599??2015-12-01?14:57??HDFSWeb\build\classes\springmvc.xm
?????文件?????????538??2015-12-01?14:57??HDFSWeb\build\classes\sqlMapConfig.xm
............此處省略134個(gè)文件信息
評(píng)論
共有 條評(píng)論