zoukankan      html  css  js  c++  java
  • 三 : spring-uploadify上传文件

    一 : applicationContext.xml中:必须声明不然获取不到
    <!-- 上传文件的配置 -->
    <bean
    id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

    <property name="maxUploadSize" value="1024000"></property>

    <property name="defaultEncoding" value="utf-8"/><!--属性:编码-->
    </bean>

    二 : 前台jsp页面
    <!-- //存放选择文件的 图片按钮的 Div -->
    <div id="uploadfileQueue"></div>
    <input type="file" id="file_upload">
    <img id="add_img" width="100" height="100"/>
    <input type="text" name="user_img" >

    三 : js代码:
    $(document).ready(function() {

    $("#file_upload").uploadify({

    //是否自动上传 true or false
    'auto':true,
    //超时时间上传成功后,将等待服务器的响应时间。
    //在此时间后,若服务器未响应,则默认为成功(因为已经上传,等待服务器的响应) 单位:秒
    'successTimeout':99999,
    //附带值 JSON对象数据,将与每个文件一起发送至服务器端。
    //如果为动态值,请在onUploadStart()中使用settings()方法更改该JSON值
    /* 'formData':{ //可以不写
    'user.username':'',
    'user.age':''
    }, */
    'onUploadStart': function(file) {

    $("#file_upload").uploadify(
    "settings"
    );
    /* {'user.username':name,'user.age':age});*/
    },
    //flash
    'swf': "<%=request.getContextPath()%>/uploadify/uploadify.swf",
    //文件选择后的容器div的id值
    'queueID':'uploadfileQueue',
    //将要上传的文件对象的名称 必须与后台controller中抓取的文件名保持一致
    'fileObjName':'headerImage',
    //上传地址访问后台action路径
    'uploader':'<%=request.getContextPath()%>/photosAction/uploadFile.do',

    //浏览将要上传文件按钮的背景图片路径
    //'buttonImage':'<%=request.getContextPath()%>/uplodify/background.jpg',

    //浏览按钮的宽度
    'width':'100',

    //浏览按钮的高度
    'height':'32',

    //在浏览窗口底部的文件类型下拉菜单中显示的文本
    'fileTypeDesc':'支持的格式:',

    //允许上传的文件后缀
    'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png', //有哪些??

    /*上传文件的大小限制允许上传文件的最大 大小。 这个值可以是一个数字或字 符串。
    如果它是一个字符串,它接受一个单位(B, KB, MB, or GB)。
    默认单位为KB您可以将此值设置为0 ,没有限制,
    单个文件不允许超过所设置的值 如果超过 onSelectError时间被触发*/
    'fileSizeLimit':'1024KB',
    'buttonText': '上传头像',
    //允许上传的文件的最大数量。当达到或超过这个数字,onSelectError事件被触发。
    'queueSizeLimit' : -1,

    //选择上传文件后调用
    'onSelect' : function(file) {
    // alert("123");
    },
    //返回一个错误,选择文件的时候触发
    'onSelectError':function(file, errorCode, errorMsg){
    switch(errorCode) {
    case -100:
    alert("上传的文件数量已经超出系统限制的"
    +$('#file_upload').uploadify('settings','queueSizeLimit')+"个文件!");
    break;

    case -110:
    alert("文件 ["+file.name+"] 大小超出系统限制的"
    +$('#file_upload').uploadify('settings','fileSizeLimit')+"大小!");
    break;

    case -120:
    alert("文件 ["+file.name+"] 大小异常!");
    break;

    case -130:
    alert("文件 ["+file.name+"] 类型不正确!");
    break;
    }
    },
    //上传到服务器,服务器返回相应信息到data里
    'onUploadSuccess':function(file, data, response){
    //alert(data);
    $("#add_img").attr("src","<%=request.getContextPath()%>/"+data)
    //alert("<%=request.getContextPath()%>/"+data)
    $("[name='user_img']").val(data)
    },
    //当单个文件上传出错时触发
    'onUploadError': function (file, errorCode, errorMsg, errorString) {
    alert("上传失败");
    }
    });

    });
    四 ; controller:
    @RequestMapping(value="/uploadFile",method=RequestMethod.POST)
    @ResponseBody
    public void uploadFile(@RequestParam("headerImage")CommonsMultipartFile headerImage,HttpServletRequest req,HttpServletResponse response) throws IOException{

    String path = FileUtil.upFile(headerImage,req,response,"pppp");
    try {
    response.setCharacterEncoding("utf-8");
    response.getWriter().write(path);

    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    注意:有时候需要使用到File类型的文件
    那么就需要将CommonsMultipartFile 类型的转换为
    File类型的

    DiskFileItem fi = (DiskFileItem)image.getFileItem();
    File file = fi.getStoreLocation();


    二 : 使用MultipartFile上传文件(多文件)
    Controller层:
    @RequestMapping("filesUpload")
    public String filesUpload(@RequestParam("files") MultipartFile[] files) {
    //判断file数组不能为空并且长度大于0
    if(files!=null&&files.length>0){
    //循环获取file数组中得文件
    for(int i = 0;i<files.length;i++){
    MultipartFile file = files[i];
    //保存文件
    saveFile(file);
    }
    }
    // 重定向
    return "redirect:/list.html";
    }
    上传文件
    private boolean saveFile(MultipartFile file) {
    // 判断文件是否为空
    if (!file.isEmpty()) {
    try {
    // 文件保存路径
    String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
    + file.getOriginalFilename();
    // 转存文件
    file.transferTo(new File(filePath));
    return true;
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    return false;
    }

  • 相关阅读:
    零点定理、介值定理
    古今数学史
    古今数学史
    StreamDM:基于Spark Streaming、支持在线学习的流式分析算法引擎
    StreamDM:基于Spark Streaming、支持在线学习的流式分析算法引擎
    随机化算法(二)
    随机化算法(二)
    机器学习算法时间复杂度的考虑
    机器学习算法时间复杂度的考虑
    matlab 工具函数、matlab toolbox(工具箱)
  • 原文地址:https://www.cnblogs.com/pengmengnan/p/6731796.html
Copyright © 2011-2022 走看看