使用AjaxFileUploader异步上传文件及Struts处理

0 下载量 192 浏览量 更新于2024-08-30 收藏 44KB PDF 举报
JSON",//返回值类型 success:function(data,status){ if(data.indexOf("success")!==-1){ varmsg=data.split("|")[1]; $("#msg").html(msg); $("#imageForm").reset(); }else{ varmsg=data.split("|")[1]; $("#msg").html(msg); } }, error:function(data,status,e){ alert(e); } }); } } }); </script> 在上面的代码中,我们首先通过jQuery选择器获取到文件输入框的值,判断用户是否选择了文件。如果文件为空,弹出提示让用户选择文件。接着,我们检查文件的格式,只允许上传`.png`和`.jpg`格式的图片。然后,我们构建了上传请求的URL,并使用`ajaxFileUpload`方法进行异步文件上传。 `ajaxFileUpload`方法的参数包括: - `url`: 上传文件的服务器端接口地址。 - `secureuri`: 是否使用安全协议,这里是`false`表示不使用。 - `fileElementId`: 需要上传的文件输入框的ID,这里是`userPhoto`。 - `dataType`: 预期的服务器响应数据类型,可以是`text`或`json`等。 - `success`: 上传成功后的回调函数,接收到服务器响应后执行,这里的`data`是服务器返回的数据,`status`是HTTP状态码。 - `error`: 上传失败时的回调函数,用于处理错误情况。 服务器端,例如使用Struts框架,会接收到文件并进行处理,包括验证文件的尺寸和大小。如果所有验证都通过,服务器会返回一个包含特定信息的字符串,如`"success|success_message"`,前端则通过解析这个字符串来展示结果。如果验证失败,服务器会返回一个错误消息,前端同样会显示这个错误消息给用户。 注意,这个示例中的`ajaxFileUpload.js`插件并不是jQuery的核心功能,它是一个扩展插件,用于支持异步文件上传。为了使用这个插件,需要在页面中引入`jQuery`库和`ajaxFileUpload.js`文件。 在实际开发中,考虑到用户体验和安全性,通常还会添加进度条显示、错误处理、多文件上传等功能。同时,对于文件大小和类型的验证也可以在前端进行,减少无效的服务器请求。此外,现代浏览器支持HTML5的`FormData`对象,可以通过`XMLHttpRequest`的`FormData`上传文件,提供更多的控制和反馈,例如监控上传进度。然而,这个示例主要展示了使用jQuery和`ajaxFileUpload`插件实现的基本异步文件上传功能。