Java中附件上传

1、因为上传文件会使用到MultipartHttpServletRequest对象,我们需要在Springmvc配置文件中配置一个解析器

    <!--为了使用到spring为我们提供的,MultipartHttpServletRequest对象,我们需要配置一个解析器 -->
       <!-- 而且对于Bean组件要想正常运行,必须配置一个id属性 -->
       <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <!-- 请求编码方式 -->
         <property name="defaultEncoding" value="UTF-8"/>
         <!-- 上传文件大小 -->
         <property name="maxUploadSize" value="10000000"/>
         <!-- 缓冲区大小 -->
         <property name="maxInMemorySize" value="1024"/>

       </bean>

2、前端jsp代码

<div>
     <span>上传附件:</span><input type="file" id="accessory1"  name="accessory1" onchange="checkFile(this)" />
     <font size="2" color="red">注意:上传文件大小不能超过10M</font></div>

      //上传文件校验
         function checkFile(file){
             var flag = getFilesize(file);
             if(!flag){
                 var fileInput = $("#accessory1");            //验证不通过,清空input框
                fileInput.replaceWith(fileInput.clone());
             }
         }

        var fileSize = 0; //文件大小默认为0

        function getFilesize(file) {
            /*(1)判断文件后缀类型*/
            var strs = new Array(); //定义一数组
            var pic1 = $(file).val(); //获取input框的值,文件路径
            strs = pic1.split(‘.‘); //分成数组存储
            var suffix = strs[strs.length - 1]; //获取文件后缀

            if (suffix != ‘pdf‘ && suffix != ‘docx‘ && suffix != ‘doc‘&& suffix != ‘txt‘)
            {
               alert("仅能上传扩展名为pdf、docx、doc、text的文件!");
               return false;
            }  

            /*(2)获取文件大小,以Kb为单位*/
            fileSize = file.files[0].size / 1024;
            if (fileSize > 10000) {
                alert("您选择的文件太大,请选择小于10M的文件!");
                return false;
            }
            return true;
        }

           // 表单提交时执行的方法
                var form = new FormData();
                form.append("accessory1", $(‘#accessory1‘)[0].files[0]);

//后端请求处理   @RequestMapping(value="/addGg",method=RequestMethod.POST)
    @ResponseBody
    public boolean addGg(MultipartFile accessory1){//发布公告的同时是否有附件上传
        if (accessory1 != null ) {       logger.info("<--带有附件公告发布开始-->");
            InputStream is = null;
            try {
                is = accessory1.getInputStream();
                byte[] b = new byte[is.available()];
                is.read(b);
                jjkjGggl.setAccContent(b);
            } catch (IOException e) {
                logger.info("<--附件读取异常!-->:"+e);
                throw new RuntimeException("附件读取异常!");
            } finally{
                try {
                    is.close();
                } catch (IOException e) {
                    logger.info("<--附件读取释放资源异常!-->:"+e);
                    throw new RuntimeException("附件读取释放资源异常!");
                }
            }
        }return false;
    }

原文地址:https://www.cnblogs.com/lsjBlog/p/9497104.html

时间: 2024-10-16 16:04:50

Java中附件上传的相关文章

Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】

转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录名及文件名中的中文显示为“??”. 原因: FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码. 解决方案: 1.将中文的目录或文件名转为iso-8859-1编码的字符.参考代码: 复制代码 代码如下: String name="目录名或文件名"; name=

java多附件上传 实例demo

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> &

thinkphp中附件上传

上传后的页面显示: 上传的基础过程 将上传路径存入数据库中 结合自己的项目所写:(学生上传实践分的证明资料)

Java中文件上传下载 --使用Minio

Minio模板类: @RequiredArgsConstructorpublic class MinioTemplate implements InitializingBean { private final String endpoint; private final String accessKey; private final String secretKey; private MinioClient client; /** * 创建bucket * * @param bucketName

Java中文件上传路径与路径修改相关问题(tomcat8.0+eclipse)

1.普通文件上传的路径: 通过getRealPath获取相关路径 String photoFolder =request.getServletContext().getRealPath("uploaded"); 打印文件路径可以得到路径就是下面这样,其实就是在工作空间下面 D:\javaWeb\workspaces\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\test\uploaded 但是如果部署项目的

java开发中截取上传文件的文件名和后缀名

java开发中截取上传文件的文件名和后缀名 /** * Return the extension portion of the file's name . * * @see #getExtension */ public static String getExtension(File f) { return (f != null) ? getExtension(f.getName()) : ""; } public static String getExtension(String f

win2003中IIS上传大附件下载附件超时等设置参考

IIS的高级设置 Server2003不能上传大附件的问题 在"服务"里关闭iisadminservice服务.找到windows\system32\inetsrv\下的metabase.xml文件.找到ASPMaxRequestEntityAllowed把它修改为需要的值(可修改为20M即:20480000)存盘,然后重启iisadminservice服务. 解决Windows2003无法下载超过4M的附件问题 在"服务"里关闭iisadminservice服务.

使用plupload做一个类似qq邮箱附件上传的效果

公司项目中使用的框架是springmvc+hibernate+spring,目前需要做一个类似qq邮箱附件上传的功能,暂时只是上传小类型的附件 处理过程和解决方案都需要添加附件,处理过程和解决方案都可以添加多个附件,也可一个都不添加 以其中一个为例:(文件保存到了数据库中),有关plupload的内容可参考:http://www.360doc.com/content/14/0714/03/552866_394228686.shtml 首先是po package cn.com.plupload.p

Springmvc file多附件上传 显示 删除操作

之前项目需求要做一个多附件上传 并显示上传文件 带删除操作 一筹莫展之际搜到某个兄弟发的博客感觉非常好用被我copy下来了此贴算是改良版 再次感谢(忘记叫什么了时间也有点久没有历史记录了)先上图 基于springmvc附件上传 所需jar包 commons.fileupload-1.2.0.jar commons.io-1.4.0.jar 这个是我使用的jar包有需要的可以直接百度网盘下载 里面有好几个版本 自行选择 放在lib下面 使用的话maven 直接下载也可以 链接:https://pa