文件上传(记得关闭流)

form:
<basic name="smwd" label="导入" widget="FileUploader" referWidgets="param">    <value name="destform">fwglAdd</value>    <value name="action">upload</value>    <value name="fileTypes">*.doc;*.docx</value>    <value name="fileAmount">1</value></basic>
action:

try {    Map<String, File> l = (Map) bus.getValue("smwd");    if (l == null || l.isEmpty())        return;    for (String key : l.keySet()) {

System.out.println(" file name is: " + l.keySet());

File file = (File) l.get(key);        FileInputStream in = new FileInputStream(file);        String guid = java.util.UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();        String d = System.getProperty("file.separator");//代表一个"/"        String path1 = String.valueOf(FileUpLoadAction.class.getResource(""));        System.out.println(path1.substring(6, path1.length()));        String os1 = System.getProperty("os.name");        if(os1.toLowerCase().startsWith("win")){//判断是不是windows操作系统            File writeFile = new File(path1.substring(6, path1.length()) + "upload" + d + guid + "_" + key);            FileOutputStream os = new FileOutputStream(writeFile);            byte[] b = new byte[1024];            int i = 0;            while ((i = in.read(b)) != -1) {                os.write(b, 0, i);            }            os.flush();//很重要            form.updateWidgetValue("path", writeFile);            form.updateWidgetValue("smwdmc", key);            in.close();//很重要            os.close();//很重要        }else{//如果是linux操作系统,路径前边要多加一个 "/"            File writeFile = new File(d+path1.substring(6, path1.length()) + "upload" + d + guid + "_" + key);            FileOutputStream os = new FileOutputStream(writeFile);            byte[] b = new byte[1024];            int i = 0;            while ((i = in.read(b)) != -1) {                os.write(b, 0, i);            }            os.flush();//很重要            form.updateWidgetValue("path", writeFile);            form.updateWidgetValue("smwdmc", key);            in.close();//很重要            os.close();//很重要        }

}

} catch (Exception e) {

e.printStackTrace();

}
时间: 2024-10-18 21:41:59

文件上传(记得关闭流)的相关文章

java文件上传和下载

简介 文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到本地. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的j

spring mvc 批量上传+文件上传

spring mvc 批量上传+文件上传 简单3步走.搞定! 上传文件成功后: 1 上传文件核心方法 public static String saveWebImgFile(MultipartFile imgFile){ String webFilePath = ""; if(imgFile.getSize() > 0 && isImage(imgFile.getContentType())){ FileOutputStream fos = null; try {

java 大文件上传 断点续传 完整版实例 (Socket、IO流)

原文出自:https://blog.csdn.net/seesun2012 java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作 2.服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求 3.服:每接收到一个Socket就建立一个新的线程来处理它 4.客:利用Socket进行远程连接,询问已上传进度 5.客:使用File

word和excel在网页上显示,文件流,虚拟目录,文件上传

1.如何在网页上显示word和excel a.可以使用aspose将word 和excel 转换为pdf 然后在网页上打开pdf,但是效果不是很好.比如说excel 多个工作薄不是按exce 格式显示出来,宽度大小,不好控制(?). b.可以使用aspose将文档转换为html,但是转换为html 会产生额外的XML和CSS和图片文件.在文件流中不好读取(文件在本地里面). c.可以使用其他转换,比如http://www.cutepdf.com/(?),或者用文件流读取再转换(没试过),或者是w

实现文件上传文件的地址的获取手段之一IO流读取

这是为了我方便之后来查询的代码: 该文件上传是使用form表单提交到后台再使用io流读取,获得文件路径:待修改和完善 package cn.edu.web.servlet; import cn.edu.pojo.Course; import cn.edu.service.CourseListService; import cn.edu.service.CourseListServiceImpl; import com.google.gson.Gson; import org.apache.com

JavaWeb(六) IO流实现文件上传下载

最近学的东西有点杂,做了和看了写什么就把它记录下来.不得不说代码真的很神奇,需要学习的还很多. 一直没把文件上传和下载搞清楚,今天就来动手写一写. 一 .依赖如下两Jar实现的文件上传. 实现代码如下: 基础实现: 1 package com.qq.upload; 2 3 import org.apache.commons.fileupload.FileItem; 4 import org.apache.commons.fileupload.disk.DiskFileItemFactory; 5

java多线程文件上传服务器

描述: (1)jdk自带线程池见 JDK自带线程池配置 (2)此上传文件服务器中上传文件的后缀名通过第一段缓冲字符流传递,此缓冲字符流大小为1024,在文件接收端以1024接收.处理. 1.服务器代码如下(使用jdk自带线程池): 1 /** 2 * 服务器处理多线程问题 3 * 4 * 1.因为服务器是要很多人访问的,因此里面一定要用多线程来处理,不然只能一个人一个人的访问,那还叫Y啥服务器 5 * 6 * 2,拿上面这个文件上传的例子来说,它将每个连接它的用户封装到线程里面去,把用户要执行的

SpringMVC文件上传下载

在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/qixiaoyizhan/p/5819392.html 今天我们来讲讲spring mvc中的文件上传和下载的几种方法. 首先附上文件目录->我们需要配置的我做了记号-> 一.文件上传 首先为了方便后续的操作,以及精简代码,我们在Utils包下封装一个文件上传下载的帮助类: Files_Helper

javaEE(10)_文件上传下载

一.文件上传概述 1.实现web开发中的文件上传功能,需完成如下二步操作: •在web页面中添加上传输入项•在servlet中读取上传文件的数据,并保存到本地硬盘中. 2.如何在web页面中添加上传输入项?    <input type=“file”>标签用于在web页面中添加文件上传输入项,设置文件上传输入项时须注意:•必须要设置input输入项的name属性,否则浏览器将不会发送上传文件的数据.•必须把form的enctype属值设为multipart/form-data.设置该值后,浏览