HTML页面的标签

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

上传照片的js方法

  1. //新增时图片上传调用,uploadobj:页面传入的文件对象,limitfilessize:限定文件的大小
  2. function DynamicPicStr(uploadobj, limitfilesize, divid, txtid, width, height) {
  3. var files = uploadobj.files[0];
  4. var oFReader = new FileReader();
  5. oFReader.readAsDataURL(files);
  6. var strurl="";//图片物理地址
  7. var txtobj = $("#"+txtid+"");
  8. var objdivimg = $("#"+divid+"");
  9.  
  10. var limitpictype = ["jpg", "bmp", "png"];
  11. try {
  12. //console.info("图片大小:"+files.size);
  13. if (parseInt(files.size / 1024) > limitfilesize) {
  14. alert("图片大小超过规定大小,只能小于" + limitfilesize + "K");
  15. txtobj.value = "";
  16. return false;
  17. }
  18. var filename = files.name;
  19. if (filename != "" && filename != null) {
  20. var searchindex = filename.indexOf(".");
  21. var filetypename = filename.substring(searchindex + 1, filename.length);
  22. var pictypebool = false;
  23. for (var i = 0; i < limitpictype.length; i++) {
  24. if (limitpictype[i].toLowerCase() == filetypename.toLowerCase()) {
  25. pictypebool = true;
  26. break;
  27. }
  28. }
  29. if (!pictypebool) {
  30. alert("图片类型不符合要求,图片类型只能是jpg , bmp , png");
  31. txtobj.value = "";
  32. return false;
  33. }
  34. }
  35. }
  36. catch (e) {
  37. alert(e.name + ": " + e.message + ",判断图片类型、图片大小失败");
  38. }
  39.  
  40. oFReader.onloadend = function(oFRevent) {
  41. strurl = oFRevent.target.result;
  42. objdivimg.attr("src",strurl);
  43. txtobj.val(files);
  44. }
  45. //objdivimg.attr("src",oFReader.result);
  46. txtobj.val(files);
  47.  
  48. console.info("图:"+strurl);
  49. objdivimg.attr("width",width);
  50. objdivimg.attr("height", height);
  51. upload(uploadobj);
  52. }
  1. //文件上传的方法
  2. function upload(file) {
  3. //let img = document.getElementById('img')
  4. let formData = new FormData()
  5. let temp = file.files[0]
  6. var strurl = getContextPathInfo() + "/LowZjblb/upload";
  7. if(temp) {
  8. formData.append('file', temp)
  9. //img.src = window.URL.createObjectURL(temp)
  10. $.ajax({
  11. url: strurl,
  12. type: "POST",
  13. data: formData,
  14. processData: false, // 告诉jQuery不要去处理发送的数据
  15. contentType: false, // 告诉jQuery不要去设置Content-Type请求头
  16. success: function(result) {
  17. $("#newzjzp").val(result.appenddata);//服务器保存的路径
  18. //alert(result);
  19. }
  20. })
  21. }
  22. }

java后端Controller接收的方法

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

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

  1. public static String saveFile(MultipartFile filedata,String newFileName,String dicName, HttpServletRequest request) {
  2. // TODO Auto-generated method stub
  3. String pathval = request.getSession().getServletContext().getRealPath("/");
  4. // 根据配置文件获取服务器图片存放路径
  5. //String newFileName = String.valueOf(System.currentTimeMillis());
  6. Calendar cale = null;
  7. cale = Calendar.getInstance();
  8. String year = String.valueOf(cale.get(Calendar.YEAR));
  9. String month = String.valueOf(cale.get(Calendar.MONTH) + 1);
  10. String saveFilePath = "UpFile/"+dicName+"/"+year+"/"+month+"/";
  11. /* 构建文件目录 */
  12. File fileDir = new File(pathval + saveFilePath);
  13. if (!fileDir.exists()) {
  14. fileDir.mkdirs();
  15. }
  16. // 上传的文件名
  17. String filename = filedata.getOriginalFilename();
  18. // 文件的扩张名
  19. String extensionName = filename.substring(filename.lastIndexOf(".") + 1);
  20. try {
  21. String imgPath = saveFilePath + newFileName + "." + extensionName;
  22. // System.out.println(pathval + imgPath);打印图片位置
  23. FileOutputStream out = new FileOutputStream(pathval + imgPath);
  24. // 写入文件
  25. out.write(filedata.getBytes());
  26. out.flush();
  27. out.close();
  28. return imgPath;
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. }
  32. return null;
  33. }

Java上传图片到服务器的更多相关文章

  1. JSP+java上传图片到服务器,并将地址保存至MYSQL + JSP网页显示服务器的图片

    这两天遇到个需求——用户头像修改功能. 查了好多资料,不是代码不全,就是某些高端框架,卡了好久,今已实现,分享给大家,如果有更好的方法,非常感谢可以在下方评论区写出 一.整体项目架构 二.web.xm ...

  2. java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)

    最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.current ...

  3. React+ajax+java 上传图片并预览

    之前有在网上找ajax上传图片的资料,大部分的人写得都是用jQuery,但是在这里用JQuery就大才小用了,所以我就自己写了,先上图. 由上图,首先点击上面的选择文件,在选择图片之后,将会自动上传图 ...

  4. Android 上传图片到服务器 okhttp一

    [目录] (一)上传图片到服务器一 ---------------------------------Android代码 (二)上传图片到服务器二--------------------------- ...

  5. Java获取Web服务器文件

    Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下两种方式: 方法一: ...

  6. 一个java页游服务器框架

    一.前言 此游戏服务器架构是一个单服的形式,也就是说所有游戏逻辑在一个工程里,没有区分登陆服务器.战斗服务器.世界服务器等.此架构已成功应用在了多款页游服务器 .在此框架中没有实现相关业务逻辑,只有简 ...

  7. 通过android 客户端上传图片到服务器

    昨天,(在我的上一篇博客中)写了通过浏览器上传图片到服务器(php),今天将这个功能付诸实践.(还完善了服务端的代码) 不试不知道,原来通过android 向服务端发送图片还真是挺麻烦的一件事. 上传 ...

  8. Wcf for wp8 上传图片到服务器,将图片名字插入数据库字段(五)

    环境:.NET Framework 3.5 服务: IIS EXpress托管 WCF服务程序 配置:Web.config <!--<connectionStrings> <a ...

  9. Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解

    Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...

随机推荐

  1. [ kvm ] 学习笔记 6:virsh 命令及功能详解

    1. 虚拟机管理操作 attach-device 从XML文件附加设备 attach-disk 附加磁盘设备 attach-interface 连接网络接口 autostart 自动启动一个域 blk ...

  2. JS中的match和test正则表达式验证密码或用户名的一种规则

    match语法:字符串.match(正则表达式)有符合的:返回符合的数组无符合的:返回null test语法:正则表达式.test(字符串)有符合的:返回true无符合的 :返回false 该文的密码 ...

  3. css样式圆角和一定的透明度

    css样式里可以用border-radius把div或图片变成带有一定圆角的,如果是div本身是正方形,设置圆角度是百分之五十,就是圆形. border-radius:值可以是具体的px数值,也可以是 ...

  4. 时空卷积网络TCN

    1.写在前面 实验表明,RNN 在几乎所有的序列问题上都有良好表现,包括语音/文本识别.机器翻译.手写体识别.序列数据分析(预测)等. 在实际应用中,RNN 在内部设计上存在一个严重的问题:由于网络一 ...

  5. Linux习题1

    1. GUN的含义是:     GNU's Not UNIX    . 2. Linux一般有3个主要部分:内核.命令解释层.实用工具. 3.POSIX是可携式操作系统接口的缩写,重点在规范核心与应用 ...

  6. 【VS开发】如何判断客户端SOCKET已经断开连接?

    http://biancheng.dnbcw.info/linux/366100.html    最近在做一个服务器端程序,C/S结构.功能方面比较简单就是client端与server端建立连接,然后 ...

  7. 管道式编程(Pipeline Style programming)

    受 F# 中的管道运算符和 C# 中的 LINQ 语法,管道式编程为 C# 提供了更加灵活性的功能性编程.通过使用 扩展函数 可以将多个功能连接起来构建成一个管道. 前言 在 C# 编程中,管道式编程 ...

  8. 一次性清除页面上的所有setInterval

    参考链接:https://www.cnblogs.com/liujinyu/p/3668575.html

  9. tornodo学习之路

    tornodo的ioloop是什么?(A) A.事件循环 B.对象循环 C.没有对象不用循环 别人是否可以分析放在本地的cookie?(B) A.否 B.是 WSGI是什么?(A) A.web服务器网 ...

  10. Java多线程概念及优缺点,多线程的地位|乐字节

    大家好,乐字节小乐有来咯,上次说完了Java网络编程探究|乐字节,这次我们来看看线程相关的吧. Java线程主要讲述的内容有: 1.线程概念 多线程,说白了就是多条执行路径,原来是一条路径,就主路径( ...