首先需要插件配置ajaxfileupload.js下面可下载
jsp代码:
<img id="showImg1" alt="" src="" onclick="file1()">
<input type="file" id="file" name="file" style="display:none;" onchange="upload()" />
js代码:
function file1(){
document.getElementById("file").click();
}
function upload(){
$.ajaxFileUpload({
url : '${basePath}/qfOrder/uploadImg.action', //用于文件上传的服务器端请求地址
secureuri : false, //一般设置为false
fileElementId : 'file', //文件上传空间的id属性 <input type="file" id="file" name="file" />
type : 'post',
dataType : 'json', //返回值类型 一般设置为json
success : function(data, status) //服务器成功响应处理函数
{
var imgUrl = data.imgUrl;
$('#img1').val(imgUrl);
$('#showImg1').attr('src','${basePath}'+'/'+imgUrl);
},
error : function(data, status, e)//服务器响应失败处理函数
{
alert(data.msg);
}
});
}
后台Java sping代码:
@RequestMapping(value = "uploadImg")
public void uploadImg(HttpServletRequest request,HttpServletResponse response,
@RequestParam(value="file",required=false) MultipartFile[] file) throws Exception{
//获得物理路径webapp所在路径
String pathRoot = request.getSession().getServletContext().getRealPath("/");
String path="";
List<String> listImagePath=new ArrayList<String>();
JSONObject json = new JSONObject();
Map<String, Object> jsonMap = new HashMap<String, Object>();
try {
if(file!=null&&file.length>0){
for (MultipartFile mf : file) {
if(!mf.isEmpty()){
//生成uuid作为文件名称
String uuid = UUID.randomUUID().toString().replaceAll("-","");
//获得文件类型(可以判断如果不是图片,禁止上传)
String contentType=mf.getContentType();
//获得文件后缀名称
String imageName=contentType.substring(contentType.indexOf("/")+1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
path="DDQF/images/"+sdf.format(new Date())+"/" +uuid+"."+imageName;
File imgFile = new File(pathRoot+path);
if(!imgFile.exists()){
imgFile.mkdirs();
}
mf.transferTo(imgFile);
listImagePath.add(path);
}
}
jsonMap.put("msg", "图片上传成功");
jsonMap.put("imgUrl", listImagePath.get(0));
}
} catch (Exception e) {
jsonMap.put("msg", "图片上传失败");
}
json.putAll(jsonMap);
response.getWriter().append(json.toString());
}
分享到:
相关推荐
Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2
sping3 spring-beans 类图 chm
文件上传是Web 程序经常用到的功能,例如MSDN 的资源上传,yahoo邮箱的附件上传,论坛的附件上传等,文件上传的方式有很多种,例如,使用Struts框架实现文件上传,在JSP中使用jspSmartUpload 组件实现文件上传和使用...
mybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvc
Spring AOP则提供了一种声明式处理横切关注点(如日志、事务管理)的方式,让开发者可以将这些通用功能与业务逻辑分离,提高代码可维护性。 日志库在任何软件系统中都扮演着关键角色,它们帮助记录程序运行时的信息...
sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术
sping+spingmvc+hibernate 在学习的时候毕业前夕自己根据资料和以前自己写的项目整合的套,对包哪些进行了选择,主要对事物aop的配置进行了配置,个人感觉不错,共享下,另外还对spingmvc,mybatis的整合项目也有,在...
Spring源码中的`org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor`处理`@Scheduled`注解,`org.springframework.scheduling.config.ScheduledTaskRegistrar`用于注册定时任务,而`...
- **事务管理**:简化了对数据库事务的处理,支持本地事务和分布式事务。 - **数据访问抽象层**:提供了对多种数据访问技术的支持,如JDBC、Hibernate和JPA等,使得数据访问代码更加统一和高效。 - **Web开发支持**...
同时,它还提供了基本的类型转换、资源加载和异常处理等功能。 4. **spring-web-2.5.6.jar**:这个库为 Web 应用程序提供了支持,包括基于 Servlet API 的集成、HTTP 请求的封装、Web 容器特定的功能,如请求监听器...
8. **Spring Integration**:这是一个企业级的集成框架,用于处理系统间的异步通信和消息传递。它可以与各种消息中间件(如RabbitMQ、ActiveMQ)协同工作,实现服务间的解耦。 9. **Spring Test**:Spring提供了...
在这个实例中,我们主要关注的是如何在Struts2框架下实现文件上传功能,并结合MyBatis进行数据持久化处理。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,它提供了强大的控制层,使得...
Spring通过HibernateTemplate或SessionFactoryBean,使得在应用中使用Hibernate变得更加方便,同时Spring还提供了事务管理,使得在多层架构中处理数据库事务更加简单。 "spring-framework-4.0.8.RELEASE"这个文件名...
在Spring框架中,为了保障应用程序的安全性,通常会要求对用户的密码进行加密处理,以便存储在数据库中。在"Spring2配置用户密码加密解密"的主题下,我们将深入探讨Spring如何实现这一功能,并结合给定的文件名来...
2. **Controller**:控制器是业务逻辑的入口点,通常用注解@Controller标记,负责处理请求并返回模型数据。 3. **Model**:模型对象,包含了业务数据。 4. **View**:视图负责展示模型数据。Spring MVC支持多种...
- 创建Controller类:编写一个简单的Controller,用`@RequestMapping`注解指定处理的URL路径,返回"Hello, World!"的响应。 - 配置视图解析器:如使用InternalResourceViewResolver,设置前缀和后缀,以便Spring...