myeclipse中建web项目上传文件到hadoop,出现文件上传上去了,但是文件大小为0或小于当前文件解决方案
2015-03-24 14:43
676 查看
request.setCharacterEncoding("UTF-8");
Long start = System.currentTimeMillis();
try {
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory dff = new DiskFileItemFactory();// 创建该对象
dff.setRepository(tmpDir);// 指定上传文件的临时目录
dff.setSizeThreshold(1024000);// 指定在内存中缓存数据大小,单位为byte
ServletFileUpload sfu = new ServletFileUpload(dff);// 创建该对象
// sfu.setFileSizeMax(5000000);// 指定单个上传文件的最大尺寸
// sfu.setSizeMax(10000000);// 指定一次上传多个文件的总尺寸
FileItemIterator fii = sfu.getItemIterator(request);// 解析request
// 请求,并返回FileItemIterator集合
while (fii.hasNext()) {
FileItemStream fis = fii.next();// 从集合中获得一个文件流
if (!fis.isFormField() && fis.getName().length() > 0) {// 过滤掉表单中非文件域
System.out.println("ok:" + fis.getName());
/*String fileName = ReplaceBadCharOfFileName(fis
.getName());*/
String fileName = fis
.getName();
System.out.println(fileName);
BufferedInputStream in = new BufferedInputStream(
fis.openStream());// 获得文件输入流
String dst = "hdfs://192.168.0.16:9000/" + fileName;
Configuration conf = new Configuration();
// 获得hadoop系统的连接
FileSystem fs = FileSystem.get(URI.create(dst), conf);
// out对应的是Hadoop文件系统中的目录
OutputStream out = fs.create(new Path(dst));
IOUtils.copyBytes(in, out, 4096, false);// 4096是4k字节
out.flush();
out.close();
fs.close();
System.out.println("success");
System.out.println(System.currentTimeMillis() - start);
}
}
response.getWriter().println("File upload successfully!!!");// 终于成功了,还不到你的上传文件中看看,你要的东西都到齐了吗
}
} catch (Exception e) {
e.printStackTrace();
}
一开始没有添加out.flush();out.close();fs.close();故导致了上面的情况
Long start = System.currentTimeMillis();
try {
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory dff = new DiskFileItemFactory();// 创建该对象
dff.setRepository(tmpDir);// 指定上传文件的临时目录
dff.setSizeThreshold(1024000);// 指定在内存中缓存数据大小,单位为byte
ServletFileUpload sfu = new ServletFileUpload(dff);// 创建该对象
// sfu.setFileSizeMax(5000000);// 指定单个上传文件的最大尺寸
// sfu.setSizeMax(10000000);// 指定一次上传多个文件的总尺寸
FileItemIterator fii = sfu.getItemIterator(request);// 解析request
// 请求,并返回FileItemIterator集合
while (fii.hasNext()) {
FileItemStream fis = fii.next();// 从集合中获得一个文件流
if (!fis.isFormField() && fis.getName().length() > 0) {// 过滤掉表单中非文件域
System.out.println("ok:" + fis.getName());
/*String fileName = ReplaceBadCharOfFileName(fis
.getName());*/
String fileName = fis
.getName();
System.out.println(fileName);
BufferedInputStream in = new BufferedInputStream(
fis.openStream());// 获得文件输入流
String dst = "hdfs://192.168.0.16:9000/" + fileName;
Configuration conf = new Configuration();
// 获得hadoop系统的连接
FileSystem fs = FileSystem.get(URI.create(dst), conf);
// out对应的是Hadoop文件系统中的目录
OutputStream out = fs.create(new Path(dst));
IOUtils.copyBytes(in, out, 4096, false);// 4096是4k字节
out.flush();
out.close();
fs.close();
System.out.println("success");
System.out.println(System.currentTimeMillis() - start);
}
}
response.getWriter().println("File upload successfully!!!");// 终于成功了,还不到你的上传文件中看看,你要的东西都到齐了吗
}
} catch (Exception e) {
e.printStackTrace();
}
一开始没有添加out.flush();out.close();fs.close();故导致了上面的情况
相关文章推荐
- 关于使用Myeclipse 部署 web项目到tomcat上出现PermGen space的解决方案
- myeclipse中web项目出现红色叹号解决方案
- 在本地我们调试运行AJAX.NET程序完全没有问题,但是一旦上传到服务器就会出现很多Web.config文件异常
- 打开Web程序解决方案或项目文件出现错误
- 向MyEclipse中的web项目中导入js文件时,出现小红叉
- 向MyEclipse中的web项目中导入js文件时,出现小红叉
- Myeclipse中项目前面有红叉,但是项目中文件没有错误解决方案一
- weblogic服务上传word等文件直接打开问题解决 博客分类: web应用服务器 在weblogic上发布的web项目,测试中发现出现当上传word、excel、pdf等文件在下载的时候出现
- 将本地TP5项目文件上传到lamp环境上出现500错误
- ASP.Net在web.config中设置上传文件的大小方法
- android项目从零开始 Android webview支持 文件上传、图片上传
- Web 开发中 文件上传 是出现的:java.io.FileNotFoundException: (文件名、目录名或卷标语法不正确。)
- 在Web.config中更改单个上传文件大小
- 打开ASP.NET Web项目时,此项目的默认Web访问模式设置为文件共享, 但是无法从路径“...”打开“...”处的项目文件夹。返回的错误是: 无法打开Web项目“”。返回的错误是: 无法打开Web项目“...”。文件路径“...”怀URL“...”不
- Web.Config文件配置之限制上传文件大小和时间
- Win2008或IIS7的文件上传大小限制解决方案
- (转)更改Web.config中对上传文件大小限制
- ASP.Net 文件上传大小限制解决方案修改IIS配置
- 更改Web.config中对上传文件大小限制
- Windows server 2008修改IIS7的文件上传大小限制解决方案