关于新闻发布系统 怎么实现大容量的文件或者图片实现在数据中的保存,除了smartupload方法外 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大容量的图片或文件上传的话,要用到nio包的管道流。利用了缓存。这样就可以实现大容量的数据上传,不过速度问题有待解决 用fileupload.jar进行上传,它可以上传大文件.以下为方法:DiskFileItemFactory dff = new DiskFileItemFactory();//创建该对象dff.setRepository(tmpDir);//指定上传文件的临时目录dff.setSizeThreshold(10*1024*1024);//指定在内存中缓存数据大小,单位为byteServletFileUpload sfu = new ServletFileUpload(dff);//创建该对象sfu.setFileSizeMax(500*1024*1024);//指定单个上传文件的最大尺寸sfu.setSizeMax( 500*1024*1024);//指定一次上传多个文件的总尺寸 String fileName =null;String title =null; FileItemIterator fii = sfu.getItemIterator(request);while(fii.hasNext()){ FileItemStream fis = fii.next();//从集合中获得一个文件流 BufferedInputStream in = new BufferedInputStream(fis.openStream());//获得文件输入流 if(!fis.isFormField() && fis.getName().length()>0){//过滤掉表单中非文件域 String Name=new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); fileName = Name+fis.getName().substring(fis.getName().lastIndexOf("."));//获得上传文件的文件名 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(saveDir+"\\"+fileName)));//获得文件输出流 Streams.copy(in, out, true);//开始把文件写到你指定的上传文件夹 }else{//其他表单(名为txt_title的text)它的值 int readbyte; String value=""; while((readbyte=in.read())!=-1){ value=value+String.valueOf((char)readbyte); } if("txt_title".equals(fis.getFieldName())){ title=new String(value.getBytes("iso8859_1")); } } } flv视频下载器是如何实现的? 如何在点击button时改变下拉菜单的值? 明明是类,为什么说是包? jsp2.0 function标签 和iframe自适应高度的问题 请问这样的统计数据做成饼图要如何显示才行? Microsoft Office 中的Chart组件用在JSP中的问题? tomcat菜鸟问题 遇到错误!大家帮忙看看!! 请教一个有关 javaBean 的问题(谢先了) 分页功能的效率问题,大家来讨论一下!!!!!!!!!! 请教一个图片处理的问题 配置完validator框架后启动tomcat时提示了两个错误!请问是什么原因呀!怎么改呀??
这样就可以实现大容量的数据上传,不过速度问题有待解决
dff.setRepository(tmpDir);//指定上传文件的临时目录
dff.setSizeThreshold(10*1024*1024);//指定在内存中缓存数据大小,单位为byte
ServletFileUpload sfu = new ServletFileUpload(dff);//创建该对象
sfu.setFileSizeMax(500*1024*1024);//指定单个上传文件的最大尺寸
sfu.setSizeMax( 500*1024*1024);//指定一次上传多个文件的总尺寸
String fileName =null;
String title =null;
FileItemIterator fii = sfu.getItemIterator(request);
while(fii.hasNext()){
FileItemStream fis = fii.next();//从集合中获得一个文件流
BufferedInputStream in = new BufferedInputStream(fis.openStream());//获得文件输入流
if(!fis.isFormField() && fis.getName().length()>0){//过滤掉表单中非文件域
String Name=new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
fileName = Name+fis.getName().substring(fis.getName().lastIndexOf("."));//获得上传文件的文件名
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(saveDir+"\\"+fileName)));//获得文件输出流
Streams.copy(in, out, true);//开始把文件写到你指定的上传文件夹
}else{//其他表单(名为txt_title的text)它的值
int readbyte;
String value="";
while((readbyte=in.read())!=-1){
value=value+String.valueOf((char)readbyte);
}
if("txt_title".equals(fis.getFieldName())){
title=new String(value.getBytes("iso8859_1"));
}
}
}