Query插件ajaxfileupload上传文件无需创建form表单,这样就可以解决在form嵌套中ajax表单提交出现的问题
页面代码:(需要把ajaxfileupload.js包含进来)
<!-- 引入相关的js文件,相对路径 -->
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/ajaxfileupload.js"></script>
<!-- 执行上传文件操作的函数 -->
<script type="text/javascript">
function uploadFile() {
$.ajaxFileUpload({url:path + "/compoundbatchsearch/upLoadTxtFile.do",
secureuri:false,
fileElementId:"batchSearchFile", //页面中File标记 id的值
dataType:"XML",
success:function (data, status) {
uploadcallback(data);
},
error:function (data, status, e) {
uploadcallback("occurError");
}
});
}
<div id="search_area" style="position: absolute; z-index: auto; ">
<input id="uploadFile" accept="text/html" type="file" name="uploadFile" />
<input type="button" id="upload" value="uploadFile()" />
</div>
服务器端代码:(应用了spring2.5,需要在spring配置文件中定义multipartResolver bean)
@Controller
public class CompoundBatchSearchController {
private static final Logger logger = Logger.getLogger(CompoundBatchSearchController.class);
@Resource(name="compoundBatchSearchService")
private ICompoundBatchSearchService compoundBatchSearchService;
@RequestMapping
public void upLoadTxtFile(HttpServletResponse response, HttpServletRequest request) {
logger.info("upload txt file action...");
// clear session before parese txt file
if (request.getSession().getAttribute(Constants.RESULT_IDS) != null) {
request.getSession().removeAttribute(Constants.RESULT_IDS);
}
try {
// upload file
MultipartHttpServletRequest mhs = (MultipartHttpServletRequest) request;
MultipartFile mf = mhs.getFile("batchSearchFile");
File file = FilePathHelper.uploadFile(mf, Constants.UPLOAD_TXT);
logger.info("upload file success!");
Map<String, List<String>> idsMap = fetchIDsFromFile(file, response);
if (null == idsMap || idsMap.isEmpty()) {
logger.error("cannot read data form file!");
MessageUtils.outputJSONResult("empty", response);
return;
}
logger.info("read upload file success!");
List<String> casNumbers = idsMap.get("CAS");
List<String> mdlNumbers = idsMap.get("MDL");
if (casNumbers != null && !casNumbers.isEmpty() && mdlNumbers != null && !mdlNumbers.isEmpty()) {
logger.error("It contains invalid data in upload file");
MessageUtils.outputJSONResult("dataError", response);
return;
}
if (casNumbers != null && !casNumbers.isEmpty()) {
List<Long> ids = compoundBatchSearchService.getStructureIdsByCasNo(casNumbers);
if (ids != null) {
request.getSession().setAttribute(Constants.RESULT_IDS, ids);
}
}
if (mdlNumbers !=null && !mdlNumbers.isEmpty()) {
List<Long> ids = compoundBatchSearchService.getStructureIdsByMdl(mdlNumbers);
if (ids != null) {
request.getSession().setAttribute(Constants.RESULT_IDS, ids);
}
}
MessageUtils.outputJSONResult("success", response);
} catch (Exception e) {
logger.error(e.getMessage(), e);
MessageUtils.outputJSONResult("occurError", response);
}
}
spring中定义的upload部分:
<!-- upload file -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxInMemorySize">
<value>20480</value>
</property>
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
</bean>
分享到:
相关推荐
jquery ajaxfileupload上传插件,用于ajax的异步文件上传
jQuery插件AjaxFileUpload用来实现ajax文件上传,该插件使用非常简单,接下来写个demo演示怎么用AjaxFileUpload插件实现文件上传。 1、引入AjaxFileUpload插件相关的js 复制代码 代码如下:[removed]resources/js/...
jquery+ajaxfileupload+html文件上传,用ajaxfileupload插件做的上传文件
ajaxFileUpload插件是一个非常简单的基于Jquery的异步上传文件的插件,使用过程中发现很多与这个同名的,基于原始版本基础之上修改过的插件,文件版本比较多,我把我自己使用的ajaxFileUpload文件上传到博客园上了,...
jQuery插件AjaxFileUpload用来实现ajax文件上传,该插件使用非常简单,接下来写个demo演示怎么用AjaxFileUpload插件实现文件上传。
主要介绍了jQuery插件ajaxFileUpload异步上传文件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
jQuery.AjaxFileUpload.js, jQuery插件神奇地让文件输入通过ajax上传 这个插件上传文件 somehwere,并将响应传递给回调,无其他。它不依赖于特定的HTML,只需给它一个 <input type="file">它不要求你的服务器...
主要介绍了jQuery插件ajaxfileupload.js实现上传文件的相关资料,感兴趣的小伙伴们可以参考一下
主要介绍了一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子,需要的朋友可以参考下
主要介绍了PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例,感兴趣的小伙伴们可以参考一下
jquery ajaxfileupload.js异步上传插件
jQuery插件AjaxFileUpload用来实现ajax文件上传,该插件使用非常简单,接下来我们来看下用AjaxFileUpload插件实现文件上传的方法,有需要的小伙伴可以参考下
jQuery的ajaxFileUpload.js。感觉这种异步上传的方式非常好用
现在网上下载的上传插件(ajaxfileupload.js)很多都不支持通过设置data来传参,我这里改了一下。
使用Jquery做上传文件处理时,用到了ajaxfileupload.js 这个第三方代码,但是这个js几乎就是半成品,问题很多。现在整理如下并附修复版的ajaxfileupload.js下载。 问题: 1:无法带参数提交,只能上传文件; 2:...
NULL 博文链接:https://aokunsang.iteye.com/blog/1014274