一 引入ajaxfileupload.js,ajaxfileupload.css,jquery.js
2
jsp上传页面部分代码
<td class="td2">
<div>
<c:choose>
<c:when test="${member.photo == null}">
<img src="${imgHuadoo}/front/images/Red/userRed/user_img.gif}" width="113" id="user_photo" height="132" />
</c:when>
<c:otherwise>
<img src="${photoUrl}/${member.photo}" width="113" id="user_photo" height="132" />
</c:otherwise>
</c:choose>
</div>
<a href="#" style=" color:#ff0094;"
onclick="javascript:document.getElementById('uploadPhotoForm').style.display='';">
更换一个兔子形象
</a>
<div id="uploadPhotoForm" style="display:none">
<img id="loading" src="${imgHuadoo}/front/images/loading.gif" style="display:none;">
<form name="form" action="" method="POST" enctype="multipart/form-data">
<table cellpadding="0" cellspacing="0" class="tableForm">
<thead>
<tr>
<th>请选择您要上传的头像!</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div id="inputF"><input id="fileToUpload" type="file" size="24" name="fileToUpload" class="input"/></div>
</td></tr>
</tbody>
<tfoot>
<tr>
<td><button class="button" id="buttonUpload" onclick="return ajaxFileUpload();">上传</button></td>
</tr>
</tfoot>
</table>
</form>
<script type="text/javascript" language="javascript">
function ajaxFileUpload()
{
var rqUrl = "user/modifyUser.do?method=uploadPhoto";
var t2= "front/user/usercenter/uploadPhoto.jsp";
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
$.ajaxFileUpload(
{
url:'${ctx}/front/user/usercenter/uploadPhoto.jsp',
secureuri:false,
fileElementId:'fileToUpload',
dataType: 'json',
success: function (data, status)
{
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);}else{ alert(data.msg);
}
}
alert(data.msg);//返回成功提示
$("#uploadPhotoForm").hide();
document.getElementById("user_photo").src="${photoUrl}/" + data.newPhoto;
//alert(data.msg + "++++ " + data.error + "--" + status + data.newPhoto
//+ "\nimgSrc:" + document.getElementById("user_photo").src);
$("#inputF").html("<input id='fileToUpload' type='file'' size='24' name='fileToUpload' class='input'\/>");
},
error: function (data, status, e)
{alert(e);}
}
) return false;
</script>
</div>
</td>
upload.jsp请求处理页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.jspsmart.*, com.jspsmart.upload.*" %>
<%@page import="org.huadoo.model.Member, org.huadoo.manager.MemberManager" %>
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils" %>
<%@page import="java.io.*" %>
<%@page import="org.huadoo.core.utils.HuadooConfigure" %>
<%@page import="org.springframework.context.ApplicationContext"%>
<%@page import="org.huadoo.core.utils.HuadooUtils" %>
<%
Member member = (Member)request.getSession().getAttribute("member");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
if(member == null) {
out.println("{error:'请登陆后再尝试上传头像!'}");
return;
}
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(
getServletContext());
MemberManager memberManager = (MemberManager)ctx.getBean("memberManager");
HuadooConfigure configure = (HuadooConfigure)ctx.getBean("configure");
try {
String path = HuadooUtils.getUserPhotoUrl(configure.getUserlogPath(), member);
java.io.File dir = new java.io.File(path);
System.out.println("保存地址:" + path);
if(!dir.exists())
dir.mkdirs();
SmartUpload su = new SmartUpload();
su.setCharset("UTF-8");
su.setMaxFileSize(3 * 1024 * 1024);
//su.initialize(request.);
su.initialize(pageContext);
su.upload();
Files files = su.getFiles();
for(int i = 0; i < files.getCount(); i++) {
com.jspsmart.upload.File f = files.getFile(i);
if(f.isMissing())
continue;
String fileName = (System.currentTimeMillis() + "").substring(0, 10) + "." + f.getFileExt();
f.saveAs(path + "/" + fileName);
String photo = member.getPhoto();
if(photo != null) {
java.io.File _f = new java.io.File(path + "/" + photo);
if(_f.exists())
_f.delete();
}
member.setPhoto(fileName);
memberManager.saveOrUpdate(member);
request.getSession().setAttribute("member", member);
out.println("{msg:'恭喜您,头像上传成功!', newPhoto:'" + member.getPhoto() + "'}");
return ;
}
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SmartUploadException e) {
e.printStackTrace();
}
try {
out.println("{error:'用户照片上传失败!'");
} catch (IOException e) {
e.printStackTrace();
}
%>
分享到:
相关推荐
在这个例子中,当上传失败时,会弹出一个警告对话框,提示用户检查网络或服务器状态。 综上所述,通过结合 `AjaxFileUpload` 和 `SpringMVC`,我们可以实现一个简洁的文件上传功能,提供良好的用户体验,同时在前后...
在这个多图片上传的例子中,控制器将处理来自前端的文件上传请求,并保存到服务器的指定位置。 AjaxFileUpload是ASP.NET AJAX库中一个组件,它允许异步上传文件,即在不刷新整个页面的情况下进行文件上传。这种方式...
在这个例子中,我们结合了Ajax、jQuery、Struts以及AjaxFileUpload插件来实现这一目标。以下是关于这些技术及其应用的知识点详解: 1. **jQuery**:jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、...
在Web开发中,文件上传是一项常见的功能,AjaxFileUpload是一个基于JavaScript和AJAX技术的文件上传组件,它允许用户在不刷新页面的情况下实现异步文件上传。本实例将重点讲解如何在Spring MVC框架下利用...
虽然本文中的示例代码仅展示了一个基本的上传例子,但开发者可根据需要进一步自定义和扩展功能,以满足复杂应用场景的需求。在实际使用过程中,充分了解与调试这些常见错误提示对于保证上传功能的稳定性与用户友好性...
在这个例子中,当用户点击按钮后,文件选择对话框会弹出,选择的文件会被 `AjaxFileUpload` 处理并发送到服务器。如果上传成功,会显示相应的提示;如果发生错误,也会给出相应的错误信息。 值得注意的是,`...
在这个例子中,当用户选择文件并点击上传后,`ajaxFileUpload`将被触发,将文件发送到`upload.php`,并在成功或失败时显示相应的提示。 **后端处理**:后端需要接收并处理这些上传的文件。根据实际需求,可能需要...
**AjaxFileUpload.js** 是一个JavaScript库,专为实现文件的异步上传而设计。在Web开发中,异步上传允许用户在不刷新整个页面的情况下发送文件到服务器,提升了用户体验,尤其是在处理大文件或者需要批量上传时。这...
本文主要介绍如何在JSP项目中使用`ajaxFileUpload.js`插件解决跨域文件上传的问题,并提供了一个具体的示例代码,包括前端JS部分以及后端JSP和Struts2相关的处理逻辑。通过这个例子,我们可以深入了解整个跨域文件...
在这个例子中,我们简单地将文件保存到了服务器的uploads目录,并返回一个JSON对象表示上传成功。实际应用中,你可能还需要处理文件大小限制、文件类型检查以及错误处理等。 至于“TestDemo”这个文件,它可能是...
1.ajaxfileupload 上传时会出现如下问题: 2. 网上有很多的解决办法,在这里,我又发现了一种,可能你的错误会是这个原因引起的 ——原因是 : 你在一般处理程序中没有返回前台需要的数据格式字符串 3.下面给出一个...
ajaxFileUpload.js上传文件 的简单例子源码.... 方便大家学习 详细请看:https://blog.csdn.net/djk8888/article/details/114132071
在这个实例中,我们将关注ASP.NET中的文件上传功能,特别是在使用jQuery库的ajaxfileupload.js插件时的情况。 文件上传是Web应用中常见的功能,允许用户上传图片、文档或其他类型的文件到服务器。在传统的ASP.NET中...
这个例子展示了如何在ASP.NET Web API中使用jQuery AJAX实现文件上传的基本流程。客户端通过AJAX发送文件到服务器,服务器接收文件并进行相应的处理。注意,实际应用中还需要考虑错误处理、文件大小限制、安全问题...
在这个例子中,它被用来上传证件照。jQueryMobile插件可能会影响样式和交互。 ```html <label for="id_photos"><span class="red">* 您的有效证件照: 上传" style="filter:alpha(opacity=10);-moz-opacity:10;...
本示例中的"一个AJAX上传例子,带进度条"正是利用AJAX技术进行文件上传的一种实现,为用户提供更好的用户体验,因为文件上传过程中可以显示进度,而不是让用户等待整个页面刷新。 首先,我们要理解AJAX的核心原理:...
`AjaxFileUpload` 是一个基于 jQuery 的插件,它使得利用 AJAX 技术进行文件上传变得简单。本文将详细讲解如何使用 `AjaxFileUpload` 插件实现异步文件上传。 首先,`AjaxFileUpload` 的基本使用涉及到前端的 HTML ...
在这个例子中,当用户点击“上传”按钮时,会触发一个JavaScript事件,阻止表单的默认提交行为,并使用ajaxFileUpload方法发起异步文件上传请求。后端返回的JSON数据会被解析,并根据结果向用户显示相应的提示信息。...
`ajaxfileupload`插件就是为此目的设计的,它允许用户在不刷新整个页面的情况下上传文件,从而保持用户体验的连贯性。下面将详细介绍如何使用`ajaxfileupload`插件实现文件上传。 首先,`ajaxfileupload`是一个基于...