图片上传(简单例子)

news/2024/11/30 20:26:38/

大概逻辑是,1、图片单独form、选择上传图片(异步上传,jquery.form.js)

2、后台判断上传图片大小(太大不上传返回提示、或大小可以上传返回上传路径)

3、根据返回路径,判断图片宽高。不符合提示并删除图片、符合提示上传成功

4、上传图片后单击提交数据的form按钮,提交表单(其中有图片路径,存到数据库表中)


html

				<form id="multForm" method="post" enctype="multipart/form-data"><span class="L fs_16 gray">应用logo: </span><div class="L app_logo" id="preview"><img id="imghead" src="<%=request.getContextPath()%>/images/app_1.png" width="100%";height="100%"></div><!-- <input type="file" name="file" id="file" class="L pop_inpt"> --><div class="L" style="border:1px solid #c5c5c5;margin-left:10px"><input type="text" name="appLogo" id="appLogo" class="app_logo_name L" readonly="true" style="border-right:none"/><input type="button" value="浏 览" class="app_ll L"/></div><input type="file" name="file" id="file" class="app_file" "/><!-- οnchange="previewImage(this) --></form><form id="editAppForm" οnsubmit="return check()"><input id="id" value="${appId}" type="hidden"/>	<input type="text" name="logoPath" id="logoPath" type="hidden" style="display:none"/><p class="app_logo_tip" style=" margin-top: -20px;"><span>仅支持JPG、JPEG、PNG、BMP格式,40*40,文件小于1M</span></p>  <div class="clearfix" style="margin-bottom:24px"><span class="L fs_16 gray">应用名称 </span><input name="name" type="text" class="L pop_inpt required"/></div><div class="clearfix" style="margin-bottom:44px"><span class="L fs_16 gray">应用描述 </span><textarea name="note" class="L pop_txt required"></textarea></div><div class="pop_btn_wrapper"><input type="button" value="确定"/><input type="button" value="取消"/></div></form>

js

$(function(){tp.oldPath="";$("#file").change(function (data) {var filepath = $("input[name='file']").val();var extStart = filepath.lastIndexOf(".");var ext = filepath.substring(extStart, filepath.length).toUpperCase();if (ext != ".BMP" && ext != ".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG") {alert("图片限于bmp,png,gif,jpeg,jpg格式");return false;} else { //$("#fileType").text(ext) if(tp.oldPath!=""){tp.deleteFile(path);//删除没用的图片}tp.uploadPoto();//上传图片}return true;});
})
var tp={};
tp.uploadPoto=function (){$('#multForm').ajaxSubmit({success: function (result) {if(result.success){var path = result.data;var img=new Image();img.src=path;img.onload = function(){if(img.width>40||img.heigth>40){   alert("图片不大于40*40"); tp.deleteFile(path);}else{alert("上传成功");tp.oldPath=path;$("#imghead").attr("src",path);$("#logoPath").val(path);$("#appLogo").val(path.split("\\")[path.split("\\").length-1]);}}}else{alert(result.err);} },err:function(){alert("请求失败");},url: ctx + "application/uploadAppLogo",data: $('#multForm').formSerialize(),type: 'POST',dataType: 'json',beforeSubmit: function () {console.log("正在上传图片请稍后");}});  
}
//删除图片
tp.deleteFile=function (path){$.ajax({type : "post",url : ctx+"application/deleteAppLog",data:{"filePath":path},dataType:"json",success:function(result){if(result.status=="200"){console.log("删除图片成功");}else{console.log("删除上传文件失败");}},err:function(){console.log("删除上传文件请求失败");}})
}

java

	@RequestMapping("/uploadAppLogo")@ResponseBodypublic JsonR uploadAppLogo(@RequestParam("file") CommonsMultipartFile file,HttpServletRequest request){//上传文件if(file.getSize()<1*1024*1024){JsonResponse jr = loadFile(file,request,filePath);if(jr.isSuccess()){String path = (String) jr.getData();return JsonR.ok(path);}return JsonR.notOk("上传失败");}else{return JsonR.notOk("上传文件必须小于1M");}}@RequestMapping("/deleteAppLog")@ResponseBodypublic JsonR deleteAppLog(HttpServletRequest request,@RequestParam String filePath){String realPath = request.getSession().getServletContext().getRealPath("");File file = new File(realPath+File.separator+"WEB-INF"+File.separator+filePath);Boolean flag = file.delete();return JsonR.ok(flag);}

	private JsonR loadFile(CommonsMultipartFile file,HttpServletRequest request,String path){if (!file.isEmpty()) {  try {  if(file.getSize()>1*1024*1024){return JsonResponse.notOk("请选择小于1M的文件");}// 拿到输出流,同时重命名上传的文件  //File.separator+"WEB-INF"+File.separator+String realPath = request.getSession().getServletContext().getRealPath("");String filename =  new Date().getTime()+ file.getOriginalFilename();FileOutputStream os = new FileOutputStream(realPath+File.separator+"WEB-INF"+File.separator+filePath+File.separator+filename);  // 拿到上传文件的输入流  InputStream in = file.getInputStream();  // 以写字节的方式写文件  int b = 0;  while((b=in.read()) != -1){  os.write(b);  }  os.flush();  os.close();  in.close();  //返回文件路径,用于数据库存储return JsonR.ok(filePath+File.separator+filename);} catch (Exception e) {       return JsonR.notOk("文件上传失败");}  }return JsonR.notOk("文件上传失败");}




http://www.ppmy.cn/news/414554.html

相关文章

小丸子时钟 是什么

Welcome to my blog! <script language"javascript" src"http://avss.b15.cnwg.cn/count/count.asp"></script> 小丸子时钟 软件大小&#xff1a; 4767 KB 软件语言&#xff1a; 简体中文 软件类别&#xff1a; 国产软件 / 免费版 / 时钟日历…

html中图片阴影怎么写,css怎么给图片加阴影?

css可以实现很多的图片效果&#xff0c;图片阴影效果就是其中之一&#xff0c;那么css如何给图片添加阴影效果&#xff1f;本篇文章就给大家介绍如何使用css给图片添加阴影。 首先我们来看看css给图片添加阴影效果的第一种方法&#xff1a;设置box-shadow属性&#xff0c;通过一…

图片压缩工具推荐

为什么要压缩图片 如果你是web开发者&#xff1a;减小网页、小程序的体积&#xff0c;提升加载速度如果你是App开发者&#xff1a;减小App的打包体积&#xff0c;提升下载速度如果你是新媒体从业者&#xff1a;文章体积更小&#xff0c;加快打开速度如果你是职场用户&#xff1…

计算机无法安装小丸工具箱,小丸工具箱电脑版

小丸工具箱电脑版是一款可以压制H264AAC视频的图形界面工具&#xff0c;内核是x264、neroaac、mp4box等开源软件。小丸工具箱电脑版能够封装mp4或抽取mp4的音频或视频&#xff0c;压制视频中的音频。它的功能非常丰富&#xff0c;是属于实用的视频压制器! 小丸工具箱&#xff0…

php验证码有图片没数字,php验证码图片不显示

php 动态验证码,PHP如何开发短信验证码功能&#xff1f;,php验证码代码,php验证码图片不显示 欢迎登录清源教育官网 www.tsingyuan.cn 查看更多视频教程 php 验证码linux下只显示画布,不显示验证码的终极解决方法 经测试通过,首先放出我的代码 [php] <?php...... 出的方法…

html背景图片去重,CSS 背景图片 添加 重复和定位。

CSS 背景色. 背景图片. 背景重复. 背景图片固定和定位 body{height:3000px; background-image:url(C:/Users/Administrator/Desktop/xxx.png); background-repeat:no-repeat; background-position:bottom;/*向下的*/ background-attachment:fixed; /*给网页3000px高度 来观察背…

WordPress丸子小程序从零到一搭建小程序[小程序配置]

目录 配置域名服务器 获取 AppSecret(小程序密钥) 服务器域名 服务器域名设置

android scrollview 懒加载图片,详解性能更优越的小程序图片懒加载方式

意义 懒加载或者可以说是延迟加载&#xff0c;针对非首屏或者用户"看不到"的地方延迟加载&#xff0c;有利于页面首屏加载速度快、节约了流量,用户体验好 实现方式 传统H5的懒加载方式都是通过监听页面的scroll事件来实现的&#xff0c;结合viewport的高度来判断。 小…