精华内容
下载资源
问答
  • Java 保存上传文件
    2021-02-27 11:15:24

    @RequestMapping(value = "filesUpload")

    public void filesUpload(@RequestParam MultipartFile[] file,

    HttpServletRequest request) {

    List list = new ArrayList();

    if (file != null && file.length > 0) {

    for (int i = 0; i < file.length; i++) {

    MultipartFile files = file[i];

    // 保存文件

    list = saveFile(request, files, list);

    }

    }

    }

    private List saveFile(HttpServletRequest request,

    MultipartFile file, List list) {

    // 判断文件是否为空

    if (!file.isEmpty()) {

    try {

    // 保存的文件路径(如果用的是Tomcat服务器,文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\文件夹中

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

    String uploadPath=PropertiesUtil.get("/module.properties", "mall.uploadPath");

    String filePath = realPath+uploadPath.replaceAll("/","\\\\") + file.getOriginalFilename();

    System.out.println(filePath);

    list.add(file.getOriginalFilename());

    File saveDir = new File(filePath);

    if (!saveDir.getParentFile().exists())

    saveDir.getParentFile().mkdirs();

    // 转存文件

    file.transferTo(saveDir);

    return list;

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    return list;

    }

    更多相关内容
  • 本篇文章主要介绍了java实现文件保存到本地的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇Java将对象保存文件中/从文件中读取对象的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 数据库在webcontent下的SQL文件夹中,excel模板在excelModel文件夹中,如果运行后不能正常出现页面,可以将压缩包内的jQuery-easyUI压缩包解压后将WebContent下的同名jQuery-easyUI文件替换。具体使用方法查看使用...
  • 实现Linux与windows文件互传,用HTML实现网页版上传文件下载的界面,目前配置是Linux服务器,本地运行需要切换配置
  • 文件上传工具类,上传文件,上传导入文件到path文件夹下,判断图片大小是否超过要求,上传多张图片到服务器,上传图片到服务器,上传文件(在指定目录下创建年月日目录),上传导入文件到temp文件夹下,删除指定...
  • 首先基于 springboot 实现的,其他场景下可以引入相应的 jar 包后进行整合。 首先写入一个方法,方法的...首先获取上传文件的原始名称: String originName = file.getOriginalFilename(); 接着可以指定只能上传 p

    首先基于 springboot 实现的,其他场景下可以引入相应的 jar 包后进行整合。

    首先写入一个方法,方法的参数为传入的文件,方法的返回值自定义,这里返回类型为 String ,返回文件的存储地址。

    public String uploadToLocal(MultipartFile file){
    }

    接着在方法中进行文件的具体存取操作。

    首先获取上传文件的原始名称:

    String originName = file.getOriginalFilename();

    接着可以指定只能上传 pdf,doc,docx 类型的文件,这里需要先找出文件的后缀来判断上传文件的类型是否合法:

    先将指定的后缀存在 set 集合中, set 集合的底层是哈希表,时间复杂度为 O(1)

            Set<String> set = new HashSet<>();
            set.add(".pdf");
            set.add(".doc");
            set.add(".docx");
            set.add(".jpg");

    接着找出文件的后缀,首先遍历获取的原始文件名,通过下标遍历这个原始名称,找到第一个"."后结束遍历,然后调用 String.subString(int index) 得到字符串从 index (包括)一直到后面所有的字符串,得到的字符串就是文件的后缀。

            int count = 0;
            for(int i = 0; i < originName.length(); i++){
                if(originName.charAt(i) == '.'){
                    count = i;
                    break;
                }
            }
            String endName = originName.substring(count);

    同时也可以获取到文件类型,比如 ".pdf" 将"."去掉得到类型 pdf

    String fileType = originName.substring(count + 1);

    再判断文件是否是合法类型,不合法则直接返回错误信息:

            if(!set.contains(endName)){
                return new String("上传的文件类型错误,只能上传pdf,doc,docx,jpg类型的文件");
            }

    如果文件类型合法,进行接下来的操作。

    首先确定文件的保存路径,可以自定义。这里直接保存在项目父目录下,加入项目叫 test,路径为

    test/files/文件类型/保存文件时候的时间(yyyyMMdd)年月日/文件原始名称

    这就需要获取当天的日期并格式化为yyyyMMdd格式,并获取文件类型。

    路径采用拼接的方式,先获取当前项目的路径然后一步步拼接:

            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            String format = sdf.format(new Date());
            String savePath = System.getProperty("user.dir") + "\\" + "files" +   "\\" + fileType + "\\" + format;

    最后进行文件的保存,文件保存过程中可能会出现异常,因此用try...catch

            try {
                file.transferTo(new File(folder,saveName));
                String filePath = savePath + "\\" + saveName;
                return new String("文件路径为:" + filePath);
            } catch (IOException e){
                return new String(e.getMessage());
            }

    最后返回的String为文件的存储地址,即保存路径 + 文件名。

    接下来是方法的完整代码:

        public String uploadToLocal(MultipartFile file){
            // 获取文件原本的名字
            String originName = file.getOriginalFilename();
            // 判断文件是否是pdf文件
            Set<String> set = new HashSet<>();
            set.add(".pdf");
            set.add(".doc");
            set.add(".docx");
            // 取出文件的后缀
            int count = 0;
            for(int i = 0; i < originName.length(); i++){
                if(originName.charAt(i) == '.'){
                    count = i;
                    break;
                }
            }
            String endName = originName.substring(count); //取出文件类型
            String fileType = originName.substring(count + 1); //文件类型
            if(!set.contains(endName)){
                return new String("上传的文件类型错误,只能上传pdf,doc,docx类型的文件");
            }
            // 创建保存路径
            //日期格式
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            String format = sdf.format(new Date());
            String savePath = System.getProperty("user.dir") + "\\" + "files" +   "\\" + fileType + "\\" + format;
            // 保存文件的文件夹
            File folder = new File(savePath);
            // 判断路径是否存在,不存在则自动创建
            if(!folder.exists()){
                folder.mkdirs();
            }
            String saveName = originName;
            try {
                file.transferTo(new File(folder,saveName));
                String filePath = savePath + "\\" + saveName;
                return new String("文件路径为:" + filePath);
            } catch (IOException e){
                return new String(e.getMessage());
            }
        }

    方法可用作工具类,也可以直接用作后端接口。

    展开全文
  • 一般的文件上传(不依赖spring) /** * 保存文件 * * @param path 文件绝对路径 * @param fileBytes 文件字节数据 * @throws ApiServiceException */ public void save(String path, byte [] fileBytes) ...

    一般的文件上传(不依赖spring)

     /**
         * 保存文件
         *
         * @param path      文件绝对路径
         * @param fileBytes 文件字节数据
         * @throws ApiServiceException
         */
        public void save(String path,  byte [] fileBytes) throws ApiServiceException {
      
            //保存文件到对应位置
            File dir = new File(path);
            if (!dir.getParentFile()
                    .exists()) {
                boolean mkdir = dir.getParentFile()
                                   .mkdirs();
                if (!mkdir) {
                    // 文件父路径创建失败,父路径['{0}']
                    throw IctsServiceError.FILE_SAVE_ERROR.toException(
                            i18n(i18nPreFix + "file.parent.path.create.failure",
                                    dir.getParentFile().getAbsolutePath()));
                }
            }
            try {
                FileUtils.writeByteArrayToFile(dir, fileBytes);
            } catch (IOException e) {
            //抛出异常  
            }
        }
    
    

    依赖spring

    /**
         * 保存文件
         *
         * @param path 文件绝对路径
         * @param file 文件数据
         * @throws ApiServiceException
         */
        private void save(String path, MultipartFile file) throws ApiServiceException {
            //保存文件到对应位置
            File dir = new File(path);
            if (!dir.getParentFile().exists()) {
                dir.getParentFile().mkdirs();
            }
            try {
                file.transferTo(dir);
            } catch (IOException e) {
                //抛出异常
            }
        }
    
    

    大文件上传(不依赖spring)

    /**
         * 保存文件
         *
         * @param path      文件绝对路径
         * @param inputStream 文件流
         * @throws ApiServiceException
         */
        public void save(String path, InputStream inputStream) throws ApiServiceException {
            //保存文件到对应位置
            File dir = new File(path);
            boolean fileExists = dir.getParentFile() .exists();
            if (!fileExists) {
                boolean mkdir = dir.getParentFile().mkdirs();
                if (!mkdir) {
                    // 文件路径创建失败,
                }
            }
            try (FileOutputStream fos = new FileOutputStream(dir)) {
                byte[] b = new byte[1024];
                while ((inputStream.read(b)) != -1) {
                    fos.write(b);
                }
            } catch (IOException e) {
                //文件流转读取失败
            } finally {
                if (inputStream != null) {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                      流关闭失败
                    }
                }
            }
        }
    

    从spring 的MultipartFile获取字节数组或者inputstream流

    MultipartFile file
    file.getBytes();
    file.getInputStream()

    展开全文
  • 主要介绍了Java如何实现上传文件到服务器指定目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 本文通过实例代码给大家介绍了java上传文件图片到指定服务器目录的相关知识,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 主要为大家详细介绍了java实现动态上传多个文件,并解决文件重名问题的方法,感兴趣的小伙伴们可以参考一下
  • java文件保存对话框

    2017-11-14 14:50:25
    InputStream inputStream = conn.getInputStream(); // 通过输入流获得图片数据 byte[] getData = readInputStream(inputStream, type); // 获得图片的二进制数据 zipOut.putNextEntry(new ZipEntry(stc));...
  • java上传本地文件到oss指定目录,包含具体怎么使用,只需要改变一下配置文件就可以使用,如有疑问联系我QQ1058070168
  • Java文件上传保存

    千次阅读 2019-04-01 15:40:30
    框架 Spring Boot + FreeMarker + Ajax 第一次尝试Spring Boot 和FreeMarker, Spring Boot最大的感受是真的方便,约定大于配置,很多东西都是...MultipartFile类保存文件信息,文件上传放在request中,可debug查看r...

    框架

    Spring Boot + FreeMarker + Ajax

    第一次尝试Spring Boot 和FreeMarker, Spring Boot最大的感受是真的方便,约定大于配置,很多东西都是在使用过程中了解,看Spring Boot实战基本看完就忘得差不多…

    后台

    1. 从request获取到文件
    MultipartFile类保存文件信息,文件上传放在request中,可debug查看request中实体观察到。

    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    List<MultipartFile> files = multipartRequest.getFiles("img");
    

    强制转换request获取MultipartHttpServletRequest,再获得MultipartFile文件

    2. 写入上传文件夹
    path在application.properties中定义,使用@Value标签注入。

        /**
         * 保存图像
         *
         * @param img
         * @param userName
         * @return
         */
        private String writeImgToUpload(MultipartFile img, String userName) {
            // Tomcat 放在C盘中,可能无读写权限而写入失败
            // 写入目录文件
            // 获取文件格式
            String suffix = img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf("."));
            // 目标文件路径+文件名
            String imgFile = path + userName + suffix;
            File toFile = new File(imgFile);
            if (!toFile.getParentFile().exists()) {
                // when file is not existed, will create.
                toFile.mkdirs();
            }
            // write to target file.
            try {
                img.transferTo(toFile);
                return imgFile;
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    

    前端

    <form class="form-horizontal" id="authForm" method="post" enctype="multipart/form-data">
        <div class="form-group">
            <div class="col-sm-6">
                <b><label for="img">上传认证</label></b>
                <input type="file" id="img" name="img">
            </div>
        </div>
    
        <div class="row">
            <div class="col-xs-4">
                <button type="submit" class="btn btn-primary btn-block btn-flat">注册</button>
            </div>
        </div>
    </form>
    

    Ajax通信

    submitHandler : function(form) {
                var file = new FormData();
                var img = $('#img')[0].files[0];
                file.append('img', img);
                $.ajax({
                    url:base_url + "/auth/update",
                    type: "POST",
                    data: file,
                    async: false,
                    cache: false,
                    contentType: false,
                    processData: false,
                    success: function (data) {
                        // 成功的回调
                        if (data.code == 200) {
                            layer.msg('认证成功');
                            setTimeout(function () {
                                window.location.href = base_url;
                            }, 500);
                        } else {
                            layer.open({
                                icon: '2',
                                content: (data.msg || '认证失败')
                            });
                        }
                    }
                });
    
    展开全文
  • java上传文件到服务器

    2019-01-16 18:24:02
    java上传文件到服务器,将本地的文件上传到服务器上去
  • 应公司要求,在HTML5页面上实现上传文件到服务器功能,对于我这样的菜鸟,真是把我难住了,最后还是请教大神搞定的,下面小编把例子分享到脚本之家平台,供大家参考
  • 主要介绍了Java上传下载文件并实现加密解密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了JAVA通过HttpURLConnection 上传和下载文件的方法,非常具有实用价值,需要的朋友可以参考下
  • 一个代码完整的Java文件上传类,可保存生成缩略图,可编译成class文件供JSP/Servlet调用,应用BufferedInputStream、BufferedOutputStream、FileOutputStream、SimpleDateFormat等类实现文件上传,获得当前的文件...
  • Java上传文件保存到指定路径

    千次阅读 2020-07-15 19:50:42
    Java上传文件保存到指定路径 上代码 @PostMapping("/file-upload") @ApiOperation(value = "上传swagger.json", httpMethod = "POST") public String fileUpload(@ApiParam(value = "swaggerJsonFile", required ...
  • java 文件上传保存

    千次阅读 2016-11-10 14:52:31
    File f=new File(filePath);//模拟获取本地文件路径 String uploadFilePath="E:/uuuu/";//模拟服务器路径 File file=new File(uploadFilePath); if (!file.exists()){ file.mkdirs(); } String uuid=
  • java实现多文件上传保存到数据库

    万次阅读 2018-07-25 15:57:43
    好久没有写博客了,今天项目里需要一个功能,即前台...前台实现主要是用的layui框架,框架本身提供多文件上传列表,但是没有查看的功能,我自己实现了图片查看的功能,核心代码如下: &lt;div class="lay...
  • java代码保存上传文件_压缩图片
  • 5.读者可以通过在这条代码前面通过断点来查看eclipse运行环境下的文件上传之后保存的路径。String path = this.getServletContext().getRealPath("/WEB-INF/upload"); 二、文件下载部分 1.访问地址一 ...
  • java上传文件util包,可直接使用,需将地址改为自己的存储地址,
  • 我有以下代码处理服务器上的文件上传.但是如何将文件保存到服务器上的特定位置import gwtupload.server.UploadAction;import gwtupload.server.exceptions.UploadActionException;import org.apache.commons....
  • Java分三种方式读取任意类型文件,并保存到制定位置,支持重命名
  • 2.文件上传数据库临时表(并保存本地) a.建立临时表(log_file),存放文件信息。(这里用的表示之前项目用的,没做修改。) b.建立对应实体类,Setter and Getter。 c.编写主要接口方法: //文件上传数据库临时表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 184,376
精华内容 73,750
关键字:

java文件上传保存

java 订阅