IO流保存上传图片

@RequestMapping(value = "filesUpload")
    public void filesUpload(@RequestParam MultipartFile[] file,
            HttpServletRequest request,
            @RequestParam String name,@RequestParam Integer size,@RequestParam String type,
            @RequestParam String flagCode, String skuId
            ) throws IOException {
        /*if(Common.notEmpty(skuId)){
            getImgInfo(flagCode, skuId,"MALL_"+flagCode+""+skuId);
        }*/
        List<String> list = new ArrayList<String>();
        if (file != null && file.length > 0) {
            for (int i = 0; i < file.length; i++) {
                MultipartFile files = file[i];
                // 保存文件
                list = saveFile(request, files, list,name, size, type,flagCode,skuId);
            }
        }
    }

    private List<String> saveFile(HttpServletRequest request,
            MultipartFile file, List<String> list,String fileName,Integer fileSize,String fileType,String flagCode,String skuId) throws IOException {
        // 判断文件是否为空
        if (!file.isEmpty()) {
            try {
                // 保存的文件路径(如果用的是Tomcat服务器,文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\文件夹中
                 String uuid = Common.get32UUID();
                 String uploadPath=PropertiesUtil.get("/module.properties", "mall.uploadPath");
                 String fileNmae = file.getOriginalFilename();
                 String nameType = fileNmae.substring(fileName.lastIndexOf(".")+1);
                 String attPath =uuid+"."+nameType;
                 //saveMallAttachment(uuid,fileName, fileSize, fileType, attPath,flagCode,skuId);
                 String filePath = uploadPath.replaceAll("/","\\\\") + attPath;
                 list.add(file.getOriginalFilename());
                File saveDir = new File(filePath);
                if (!saveDir.getParentFile().exists())
                    saveDir.getParentFile().mkdirs();
                // 转存文件
//                file.transferTo(saveDir);
                FileCopyUtils.copy(file.getInputStream(), new FileOutputStream(saveDir));
                return list;
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
        return list;
    }
时间: 2024-08-09 07:03:33

IO流保存上传图片的相关文章

java io流 运行错误时,保存异常到文件里面

java io流 运行错误时,保存异常到文件里面 下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 //运行错误时,保存异常到文件里面 //下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 import java.io.*; import java.util.*; public class Index{ public static void main(String[] args) throws Exception{ try{ //创建文件

java基础8(io流3)

1.LineNumberReader: public int getLineNumber():获取行号 public void setLineNumber(int lineNumber):设置起始行号 String readLine():读取一行 2.操作基本数据类型的流 DataInputStream:读数据 DataOutputStream:写数据 作用:可以操作基本类型的流对象,其读写顺序必须一致,否则数据有问题. public static void main(String[] args

Java:IO流与文件基础

Java:IO流与文件基础 说明: 本文所有内容包含图片均为MrSaber自己编写,转载请练习我哦. 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象称作 输入流,可以向其中写入一个字节序列的对象称作 输出流. ? 这些字节序列的来源可以是:文件.网络连接.内存块等. ? 抽象类InputStream和OutputStream是构成输入/输出(I/O)的基础. ? 因为面向字节的流

黑马程序员 - IO流(上)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- IO流用于处理设备间的数据传输按操作数据分:字节流和字符流按流向分:输入流和输出流IO流常用基类:字节流的抽象基类:InputStream OutputStream字节流的抽象基类:Reader Writer注意:这4个类派生出的子类名称均以其父类名作为子类名的后缀.数据的最常见体现形式是:文件下面代码演示常用的写入,读取操作. import java.io.*; class FWDemo{

IO流(四):其他流

一.操作基本数据类型的流 (一)构造方法 1.数据输入流:DataInputStream(InputStream in) 2.数据输出流:DataOutputStream(OutputStream out) (二)方法 1.DataOutputStream: writeByte(10); writeShort(100); writeInt(1000); writeLong(10000); writeFloat(12.34F); writeDouble(12.56); writeChar('a')

JAVA学习第四十七课 — IO流(一):文件的读写

输入流和输出流相对于内存 将外部设备的数据读取到内存中:输入 将内存中的数据写入外部设备中:输出 IO流常用基类 字节流的抽象基类:InputStream,OutputStream 字符的抽象基类:Reader,Writer PS:由这四个流派生出的子类都是以父类名作为后缀名 如:InputStream的派生类FileInputStream,Reader的派生类FileReader PS:如果是文字形式的数据应该优先考虑字符流,且将数据从内存写到硬盘上应该是Writer FileWriter类

java-RandomAccessFile操作以及IO流简单使用

1.1RandomAccessFile--使用RAF读写基本类型数据,以及了解Raf的指针操作 write有相对应的写入基本类型的方法 void seek(Long pos)调整RAF指针位置,可以在写入时随时调整指针位置 raf.write(bs);写入一个字符串数组getBytes("UTF-8")--将字符串按照UTF-8解析成字符数组 raf.read(date):读取--参数为创建好的字节数组后将字节放在数组中返回参数为读取到的长度1.2java IO流:IO流是用来读写数据

java之IO流

知识点: java.io包中:类File:实现的接口:Serializable,Comparable<File> 含义:文件和目录路径名的抽象表示形式.  [抽象路径名 中第一个名称是目录名,抽象路径名中第一个名称之后每个名称都是表示一个目录,最后一个名称即可以表示目录也可以表示文件]  用户界面和操作系统使用与系统相关的 路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图. 抽象路径名 有两部分组成: 1)一个可选的与系统相关的前缀字符串,比如盘符:"

IO流4

IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区别: 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节. 处理对象不同:字节流能处理所有类型的数据(如图片.avi等),而字符流只能处理字符类型的数据. 结论:只要是处理纯文本数据,就优先考虑使用