zoukankan      html  css  js  c++  java
  • Java上传图片到服务器

    HTML页面的标签

                                <div id="div_selectpic" align="right" style=" 300px;font-size: 15px;">
                                    (格式jpg、bmp、png大小100K内)选择图片
                                    <input name="txtfiles" type="text" id="txtfiles" style="display: none">
                                    <input type="file" name="file_pic" id="file_pic" onchange="DynamicPicStr(this,100,'imgid','txtfiles',290,190)" style=" 70px;" class="easyui-linkbutton">
                                </div>
    <div>
                      <img id="imgid" alt=""/>
    </div>

    上传照片的js方法

    //新增时图片上传调用,uploadobj:页面传入的文件对象,limitfilessize:限定文件的大小
    function DynamicPicStr(uploadobj, limitfilesize, divid, txtid, width, height) {
        var files = uploadobj.files[0];
        var oFReader = new FileReader();
        oFReader.readAsDataURL(files);
        var strurl="";//图片物理地址
        var txtobj = $("#"+txtid+"");
        var objdivimg = $("#"+divid+"");
        
        var limitpictype = ["jpg", "bmp", "png"];
        try {
            //console.info("图片大小:"+files.size);
            if (parseInt(files.size / 1024) > limitfilesize) {
                    alert("图片大小超过规定大小,只能小于" + limitfilesize + "K");
                    txtobj.value = "";
                    return false;
            }
            var filename = files.name;
            if (filename != "" && filename != null) {
                var searchindex = filename.indexOf(".");
                var filetypename = filename.substring(searchindex + 1, filename.length);
                var pictypebool = false;
                for (var i = 0; i < limitpictype.length; i++) {
                    if (limitpictype[i].toLowerCase() == filetypename.toLowerCase()) {
                        pictypebool = true;
                        break;
                    }
                }
                if (!pictypebool) {
                    alert("图片类型不符合要求,图片类型只能是jpg , bmp , png");
                    txtobj.value = "";
                    return false;
                }
            }
        }
        catch (e) {
            alert(e.name + ": " + e.message + ",判断图片类型、图片大小失败");
        }
        
        oFReader.onloadend = function(oFRevent) {
            strurl = oFRevent.target.result;
            objdivimg.attr("src",strurl);
            txtobj.val(files);
        }
        //objdivimg.attr("src",oFReader.result);
        txtobj.val(files);
    
        console.info("图:"+strurl);
        objdivimg.attr("width",width);
        objdivimg.attr("height", height);
        upload(uploadobj);
        }
        //文件上传的方法
        function upload(file) {
            //let img = document.getElementById('img')
            let formData = new FormData()
            let temp = file.files[0]
            var strurl = getContextPathInfo() + "/LowZjblb/upload";
            if(temp) {
                formData.append('file', temp)
                //img.src = window.URL.createObjectURL(temp)
                $.ajax({
                    url: strurl,
                    type: "POST",
                    data: formData,
                    processData: false, // 告诉jQuery不要去处理发送的数据
                    contentType: false, // 告诉jQuery不要去设置Content-Type请求头
                    success: function(result) {
                        $("#newzjzp").val(result.appenddata);//服务器保存的路径
                        //alert(result);
                    }
                })
            }
        }

    java后端Controller接收的方法

        /**
         * 
         * @Title:图片上传返回路径   
         * @Description
         * @param MultipartFile,request
         * @return  服务器保存的图片地址url
         * @throws
         */
        @RequestMapping(value = "/upload", method = RequestMethod.POST)
        @ResponseBody
        @Log(module = "法证补领管理", operation = "添加")
        public OperationResult upload(@RequestParam("file") MultipartFile files,HttpServletRequest request) {
            OperationResult result = new OperationResult(OperationResultTypeEnum.ERROR, "增加记录失败");
            String dicName="UpFile";//服务器上传文件夹名称
            String newFileName=files.getOriginalFilename();    
            newFileName=newFileName.substring(0,newFileName.lastIndexOf("."));
            String picurl = UploadFile.saveFile(files,newFileName,dicName, request);
            result.setResulttype(OperationResultTypeEnum.SUCCESS);
            result.setMsg("上传成功");
            result.setAppenddata(picurl);
            return result;
        }

    java后端负责保存图片的方法如下

        public static String saveFile(MultipartFile filedata,String newFileName,String dicName, HttpServletRequest request) {
            // TODO Auto-generated method stub
            String pathval = request.getSession().getServletContext().getRealPath("/");
            // 根据配置文件获取服务器图片存放路径
            //String newFileName = String.valueOf(System.currentTimeMillis());
            Calendar cale = null;  
           cale = Calendar.getInstance();  
           String year = String.valueOf(cale.get(Calendar.YEAR));  
           String month = String.valueOf(cale.get(Calendar.MONTH) + 1); 
            String saveFilePath = "UpFile/"+dicName+"/"+year+"/"+month+"/";
            /* 构建文件目录 */
            File fileDir = new File(pathval + saveFilePath);
            if (!fileDir.exists()) {
                fileDir.mkdirs();
            }
            // 上传的文件名
            String filename = filedata.getOriginalFilename();
            // 文件的扩张名
            String extensionName = filename.substring(filename.lastIndexOf(".") + 1);
            try {
                String imgPath = saveFilePath + newFileName + "." + extensionName;
                // System.out.println(pathval + imgPath);打印图片位置
                FileOutputStream out = new FileOutputStream(pathval + imgPath);
                // 写入文件
                out.write(filedata.getBytes());
                out.flush();
                out.close();
                return imgPath;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
  • 相关阅读:
    hosts.deny hosts.allow防止ssh暴力破解密码
    linux查看当前ssh登陆的ip
    ubuntu下如何查看用户登录及系统授权相关信息
    ubuntu查看日志中访问次数前十的ip
    magento清空日志表
    mysql general error 2006
    mysql 1205 lock wait timeout exceeded
    mysql 504 timeout问题
    PHP : 数据库中int类型保存时间并通过年月份时分秒进行显示
    PHP : 封装Mysqli的连接、关闭和增改查(面向过程)
  • 原文地址:https://www.cnblogs.com/feipengting/p/12058938.html
Copyright © 2011-2022 走看看