java实现文件保存到本地的方法

网友投稿 329 2023-06-15


java实现文件保存到本地的方法

本篇介绍了java实现文件保存到本地的方法,具体代码如下:

private void savePic(InputStream inputStream, String fileName) {

OutputStream os = null;

try {

String path = "D:\\testFile\\";

// 2、保存到临时文件

// 1K的数据缓冲

byte[] bs = new byte[1024];

// 读取到的数据长度

int len;

// 输出的文件流保存到本地文件

File tempFile = new File(path);

if (!tempFile.exists()) {

tempFile.mkdirs();

}

os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);

// 开始读取

while ((len = inputStream.read(bs)) != -1) {

os.write(bs, 0, len);

}

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

// 完毕,关闭所有链接

try {

os.close();

inputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

文件保存方法.

附:

package com.ebways.web.upload.controller;

import java.io.*;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

import com.ebways.web.base.BaseController;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.ResponseBody;

import com.ebways.web.upload.url.UploadURL;

import orhttp://g.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@Controller

@RequestMapping(value = UploadURL.MODE_NAME)

public class UploadController extends BaseController {

@RequestMapping(value = UploadURL.IMAGE_UPLOAD)

@ResponseBody

public String uploadFile(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IllegalArgumentException, Exception {

// 参数列表

Map map = new HashMap<>();

map.put("file", file);

savePic(file.getInputStream(), file.getOriginalFilename());

//请求接口

String apiReturnStr = "";//apiHttpRequest(map, API_HOST_URL + "/image/upload");

return apiReturnStr;

}

private void savePic(InputStream inputStream, String fileName) {

OutputStream os = null;

try {

String path = "D:\\testFile\\";

// 2、保存到临时文件

// 1K的数据缓冲

byte[] bs = new byte[1024];

// 读取到的数据长度

int len;

// 输出的文件流保存到本地文件

File tempFile = new File(path);

if (!tempFile.exists()) {

tempFile.mkdirs();

}

os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);

// 开始读取

while ((len = inputStream.read(bs)) != -1) {

os.write(bs, 0, len);

}

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

// 完毕,关闭所有链接

try {

os.close();

inputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

*

* 功能:公共Action

*

*

* @date 2016年9月8日

* @author wangsheng

*/

private String allowSuffix = "jpg,png,gif,jpeg";//允许文件格式

private long allowSize = 2L;//允许文件大小

private String fileName;

private String[] fileNames;

public String getAllowSuffix() {

return allowSuffix;

}

public void setAllowSuffix(String allowSuffix) {

this.allowSuffix = allowSuffix;

}

public long getAllowSize() {

return allowSize * 1024 * 1024;

}

public void setAllowSize(long allowSize) {

this.allowSize = allowSize;

}

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

public String[] getFileNames() {

return fileNames;

}

public void setFileNames(String[] fileNames) {

this.fileNames = fileNames;

}

/**

*

* 功能:重新命名文件

*

*

* @return

* @author wangsheng

* @date 2016年9月8日

*/

private String getFileNameNew() {

SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");

return fmt.format(new Date());

}

/**

*

* 功能:文件上传

*

*

* @param files

* @param destDir

* @throws Exception

* @author wangsheng

* @date 2014年9月25日

*/

public void uploads(MultipartFile[] files, String destDir, HttpServletRequest request) throws Exception {

String path = request.getContextPath();

String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;

try {

fileNames = new String[files.length];

int index = 0;

for (MultipartFile file : files) {

String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);

int length = getAllowSuffix().indexOf(suffix);

if (length == -1) {

throw new Exception("请上传允许格式的文件");

}

if (file.getSize() > getAllowSize()) {

throw new Exception("您上传的文件大小已经超出范围");

}

String realPath = request.getSession().getServletContext().getRealPath("/");

File destFile = new File(realPath + destDir);

if (!destFile.exists()) {

destFile.mkdirs();

}

String fileNameNew = getFileNameNew() + "." + suffix;//

File f = new File(destFile.getAbsoluteFile() + "\\" + fileNameNew);

file.transferTo(f);

f.createNewFile();

fileNames[index++] = basePath + destDir + fileNameNew;

}

} catch (Exception e) {

throw e;

}

}

/**

*功能:文件上传

*

* @param file

* @param destDir

* @throws Exception

* @author wangsheng

* @date 2016年9月8日

*/

public void upload(MultipartFile file, String destDir, HttpServletRequest request) throws Exception {

String path = request.getContextPath();

String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;

try {

String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);

int length = getAllowSuffix().indexOf(suffix);

if (length == -1) {

throw new Exception("请上传允许格式的文件");

}

if (file.getSize() > getAllowSize()) {

throw new Exception("您上传的文件大小已经超出范围");

}

String realPath = request.getSession().getServletContext().getRealPath("/");

File destFile = new File(realPath + destDir);

if (!destFile.exists()) {

destFile.mkdirs();

}

String fileNameNew = getFileNameNew() + "." + suffix;

File f = new File(destFile.getAbsoluteFile() + "/" + fileNameNew);

file.transferTo(f);

f.createNewFile();

fileName = basePath + destDir + fileNameNew;

} catch (Exception e) {

throw e;

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java将文件分割为多个子文件再将子文件合并成原始文件的示例
下一篇:Bootstarp基本模版学习教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~