*****************************介绍************************************************
该功能实现是在ssm框架下(spring、springMVC、mybatis)
前台代码:
jsp:---------------------------------
//1、图片预览容器
<div id="pic_view_div" style="width:108px; height:150px">
<img src="" width="108" height="150" id="pic_view">
</div>
//2、上传按钮,其中的id为控件所需
<div style="margin-left: 100px;">
<input type="file" name="uploadify" id="uploadify" align="center"/>
</div>
//3、上传进度显示区域
<td colspan="2" rowspan="3" align="center" valign="center">
<div id="fileQueue" style="width:200px;"></div>
</td>
js----------------------------------------------------------------
$(document).ready(function(){
//初始化控件
initUpload();
var picUrl = $("#picUrl").val();
if(picUrl !=''){
$("#pic_view").attr("src",ctx+"/"+picUrl);
}else{
$("#pic_view").attr("src",ctx+"/core/resources/images/defaultPerson.png");
}
});//end ready
function initUpload(){
var personId = $("#id").val();
var year = $("#year").val();
var uploadifyHome = ctx + '/core/resources/scripts/lib/uploadify';
var uploadUrl = ctx + '/application/socialSecurity/medicalPerson/doPictureCreate.do?sessionId=' + sessionId;
$("#uploadify").uploadify({
'swf': uploadifyHome + '/uploadify.swf', //指定上传控件的主体文件
'uploader' : uploadUrl, //指定服务器端上传处理文件
'cancelImg': uploadifyHome + '/uploadify-cancel.png',
'queueID' : 'fileQueue',
'formData':{'personId':personId,'year':year},
'auto' : true,
'buttonText' : '上传图片',
'multi' : false, //设置为true将允许多文件上传。
'buttonCursor' : 'pointer',
'fileObjName' : 'file',
'fileTypeDesc': '图片文件',
'height' : '25',
'rollover': false,
'queueSizeLimit': 1, //队列中允许的最大文件数目
'fileTypeDesc' : '支持格式:jpg/gif/jpeg/png/bmp.',
'fileTypeExts': '*.jpg;*.gif;*.jpeg;*.png;*.bmp',//允许的格式
'progressData' : 'all',
//'debug' : true,
'onUploadStart': function (file) {
//alert(file.id);
},
'onQueueComplete': function (queueData) {
//layer.alert('上传成功:' + queueData.uploadsSuccessful + ' 文件,失败:' + queueData.uploadsErrored + '个文件。');
},
//检测FLASH失败调用
'onFallback': function () {
layer.alert("您未安装FLASH控件,无法上传文件!请安装FLASH控件后再试。");
},
'onUploadSuccess' : function(file,data,response) {
//console.log(data);
var dataStr = JSON.parse(data);
//设置图片预览
var exNameVal = dataStr.extraCode;
$("#picUrl").val(exNameVal);
$("#pic_view").attr("src",ctx+"/"+exNameVal);
}
});
}
//controller------------------------------------------------------------------
/**
* 上传相片
* 上传成功返回相片保存路径
* @param foreignData
* @param file 相片文件
* @return
*/
@RequestMapping("doPictureCreate")
@ResponseBody
public String doPictureCreate(@RequestParam("personId") String personId,
@RequestParam("year") String year, @RequestAttribute("file") MultipartFile file) {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
CommandResult result = new CommandResult();
OperationLog operInfo = createOperationLog(request, BuzType.MEDICAL_PERSON,
BuzDataDefinition.MEDICAL_PERSON, OperationType.ATT_CREATE);
if (!CommonUtil.ifFilePicture(file.getOriginalFilename())) {
result.setCode("fail");
result.setMessage("相片保存失败:图片格式错误");
return JacksonUtil.doJackson(result);
}
File dir = new File(request.getServletContext().getRealPath(Constants.ATT_PATH));
if (!dir.exists()) {
dir.mkdir();
} else if (dir.isFile()) {
result.setCode("fail");
result.setMessage("相片保存失败:保存路径错误," + dir.getAbsolutePath());
return JacksonUtil.doJackson(result);
}
dir = new File(request.getServletContext().getRealPath(Constants.ATT_PATH + "/medicPerson"));
if (!dir.exists()) {
dir.mkdir();
} else if (dir.isFile()) {
result.setCode("fail");
result.setMessage("相片保存失败:保存路径错误," + dir.getAbsolutePath());
return JacksonUtil.doJackson(result);
}
String fileName = personId + "_" + year + "_" + operInfo.getOperationTime().getTime();
File saveFile = new File(dir.getAbsolutePath() + "/" + fileName);
if (saveFile.exists()) {
result.setCode("fail");
result.setMessage("相片保存失败:同名文件已经存在");
return JacksonUtil.doJackson(result);
}
try {
// create file
file.transferTo(saveFile);
result.setCode("success");
// 返回相片url,客户端在保存人员信息时(doBuzDataUpdate)将该路径传回服务端MedicalPerson.picUrl
result.setExtraCode(Constants.ATT_PATH + "/medicPerson/" + fileName);
result.setMessage("相片保存成功");
} catch (Exception e) {
if (saveFile.exists()) {
saveFile.delete();
}
result.setCode("fail");
result.setMessage("相片保存失败:" + e.getMessage());
}
return JacksonUtil.doJackson(result);
}
//--------------------------------------------注意------------------------------------------
如果页面有滚动动条,可能遇到下面两个问题
1、上传图片的按钮会发生垂直错位
这里的错位是指:鼠标放到上传按钮上发现没有变成小手(pointer),且点击按钮后没有文件预览弹出窗口,这些问题在开发人员模式下(F12)会看的很明白。
这个问题可以打开你uploadify.css,改成如下:即可
.uploadify {
position: relative;
vertical-align: bottom;
/* margin-bottom: 1em; */
}
2、上传按钮发生水平错位.解决方法如下
<td colspan="2" align="center">
<table>
<tr>
<td>
<input type="file" name="uploadify" id="uploadify" align="center"/>
</td>
</tr>
</table>
</td>
相关推荐
具体代码实现因项目需求和框架而异,但核心思路是使用uploadify的`upload`事件触发上传,服务器端处理文件并返回结果。 通过以上步骤,你可以利用C#和uploadify实现一个高效、安全的图片批量上传功能。理解并掌握...
本篇文章将详细讨论从`Uploadify`迁移到`Fine Uploader`这一过程中的相关知识点,以及这两个上传控件的主要特点。 `Uploadify`是一款曾经非常流行的JavaScript文件上传插件,它利用Flash技术实现异步多文件上传,并...
【标题】"uploadify H5版(uploadifive)基于html5的手机上传图片插件"涉及的关键技术点包括HTML5、Uploadify、uploadifive和.NET后端处理。Uploadify是一个JavaScript上传组件,而其H5版本uploadifive则是针对现代...
用户在选择文件后,无需等待页面刷新即可查看上传进度和预览图片,提高了网页交互的流畅性。这款控件在网页应用中广泛使用,尤其对于那些需要频繁进行文件上传的场景,如社交媒体、在线文档编辑平台等,能够显著提升...
Uploadify是一款基于jQuery的文件上传插件,它允许用户批量上传文件,特别是图片,提供了一种用户友好的交互体验。在本文中,我们将深入探讨如何在ASP.NET环境中实现一个基于Uploadify的多图上传实例。 【描述】:...
这款控件以其简洁的界面和强大的功能深受开发者喜爱,尤其在需要处理大量图片上传的场景中,Uploadify能显著提高用户体验。 Uploadify的工作原理基于AJAX和Flash技术,它允许用户在不刷新页面的情况下实现文件的...
总结,jQuery Uploadify作为一个成熟的图片上传控件,提供了丰富的功能和高度的自定义性,使得开发者能够轻松地实现图片上传功能。然而,随着技术的发展,开发者也需要关注新的上传解决方案,以适应不断变化的Web...
【标题】"基于PHP的多文件上传控件uploadify火韦修改版源码"涉及到的是在Web开发中使用PHP和JavaScript实现的一种批量文件上传功能。Uploadify是一款流行的前端文件上传插件,它允许用户通过直观的用户界面选择并...
在上述代码中,我们指定了上传文件的SWF对象路径、服务器端处理脚本、取消按钮的图片、自动上传设置等关键参数。同时,还可以定义一系列回调函数,如`onSelectOnce`用于在选择文件后执行的逻辑,`onUploadSuccess`则...
在本文中,我们将深入探讨如何在ASP.NET MVC项目中实现多张图片的上传功能,同时利用uploadify控件创建缩略图。这个功能对于许多Web应用程序来说是至关重要的,特别是那些涉及用户上传个人资料图片、产品照片或者...
本文将详细讲解如何使用Uploadify控件实现多文件的上传。控件利用了JavaScript与***后端技术,前端通过Flash实现文件的上传,后端通过ASHX处理文件上传请求。 在具体实现上,Uploadify使用了轮训的方式调用后台...
在实际项目中,例如一个图片分享社区,可以利用UPLOADIFY实现用户快速上传图片,同时结合后端验证和处理,确保上传的安全性和有效性。通过设置限制文件类型、大小,以及自定义上传成功后的回调,可以实现完整的上传...
4. **Bootstrap FileInput**:基于流行的Bootstrap框架构建,Bootstrap FileInput是一款美观的文件上传控件,它集成了图片预览、拖拽上传等功能,易于与Bootstrap主题整合,提升网页界面的美观度。 5. **jQuery ...
2. **预览功能**:在上传前让用户预览图片,确保上传的图片符合预期。 3. **格式检查**:自动检查图片文件格式,避免无效或不安全的文件类型上传。 4. **进度条显示**:显示上传进度,让用户了解图片上传的状态。 5....
2. **初始化Uploadify**:在需要显示上传控件的地方,使用JavaScript初始化Uploadify。设置参数如`queueID`(队列的ID)、`uploader`(服务器端处理脚本)、`fileExt`(允许的文件扩展名)、`fileSizeLimit`(文件...
`jQuery.uploadify` 是一款基于 jQuery 的图片上传插件,它提供了一种用户友好的方式来上传图片。在本文中,我们将深入解析 `jQuery.uploadify` 的使用方法、配置选项以及注意事项。 首先,我们来看看核心的 ...
最后,通过学习本篇教程并实践相关的代码,我们不仅能够掌握如何使用jquery插件uploadify来实现多图上传,还可以学习到文件上传机制、JavaScript中事件处理和动态内容创建等知识点。这些技能对于进行Web开发是非常有...
在现代Web应用中,用户经常需要上传图片和文件,例如在社交媒体、电商平台或者文档共享平台。"多图片多文件上传"是一项重要的功能,它允许用户一次性上传多个图像或文档,提高了交互性和效率。本篇文章将深入探讨...
这里我们主要探讨如何使用JQUERY控件来实现图片的页面裁剪功能,以及相关的上传技术。 首先,`JQUERY` 是一个流行的JavaScript库,它简化了DOM操作、事件处理和动画效果,使得前端开发更加高效。在图片裁剪场景下,...