Java--文件上傳與下載

先講下java append的用法java

Stringbuffer 有append()方法,Stringbuffer實際上是動態字符串數組,append()是往動態字符串數組添加字符串,相似於"xx"+"yy"的那個+號。web

String1+String2 和Stringbuffer1.append("yyyy")雖然打印效果同樣,但在內存中表示卻不同spring

String1+String2 存在於不一樣的兩個地址內存
Stringbuffer1.append(Stringbuffer2)放再一塊兒
數組

文件上傳app

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.springframework.web.multipart.MultipartFile;
    /**
     * 圖片寫入方法
     * @param fileExtends 文件後綴
     * @param file 文件
     * @param flag 區分(0:用戶logo;1:用戶背景圖)
     * @return 文件路徑
     */
public String writeFile(String fileExtends, MultipartFile file,String flag){
        //獲得上傳文件的保存目錄,將上傳的文件存放於WEB-INF目錄下
        StringBuffer savePath = new StringBuffer().append(this.getServletContext().getRealPath("/WEB-INF/upload"));
        File dir = new File(savePath.toString());
         //判斷上傳文件的保存目錄是否存在
        if(!dir.exists()){
            System.out.println(savePath+"目錄不存在,須要建立");
            //建立目錄
            dir.mkdirs();
        }
        if ("0".equals(flag)) {
            //若是是用戶logo,則圖片以img.png結尾
            savePath .append("/img.").append(fileExtends);
        }else if ("1".equals(flag)){
            //若是是用戶背景圖,則圖片以bg.png結尾
            savePath .append("/bg.").append(fileExtends);
        }
        
        try {
            //上傳流
            byte[] bytes = file.getBytes();
            BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(savePath.toString())));
            stream.write(bytes);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        
        return savePath;
    }
相關文章
相關標籤/搜索