JS Form表单提交文件后,自定义跳转或提示
2017-08-18 10:10
260 查看
form表单提交后,自定义页面跳转或者提示内容
js请求代码和html代码是我在网上找的,但是后来想再去寻找时,已经找不见了。所以写此博客来记录。不会解释,一切看代码。
《HTML》代码:
<div class="three-line-power-view"><!-- 上传示意图表单 -->
<form id="power-view-file-form" enctype="multipart/form-data" action="aaa" method="post" target="rfFrame">
<input type="file" class="power-view-file-image" name="file" />
<input type="submit" class="power-view-file-submit" style="cursor: pointer;width:64px;" value="提交" />
<!-- 图片上传展示区域 -->
<div class="three-line-power-view-file"> </div>
</form>
<iframe id="rfFrame" name="rfFrame" src="about:blank" style="display:none;"></iframe>
</div>form设置target属性,引用的是下方 <iframe>的id,具体什么原因,我也不清楚。
若上传图片预览效果
$(function() { $('[type=file]').change(function(e) { var file = e.target.files[0]; preview1(file); }); }); // 预览图片
function preview1(file) { var img = new Image(), url = img.src = URL.createObjectURL(file); var $img = $(img); img.onload = function() { URL.revokeObjectURL(url); $('.three-line-power-view-file').empty().append($img); }
} function preview2(file) { var reader = new FileReader(); reader.onload = function(e) { var $img = $('<img>').attr("src", e.target.result); $('.three-line-power-view-file').empty().append($img); } reader.readAsDataURL(file);
}
两个预览图片的方法,都可以。
js请求
// 点击提交,阻止form表单提交 $(".power-view-file-submit").click(function(){ var options = { url : 'aaa', // 请求路径,同form的action type : 'post', beforeSend : function(xhr){//请求之前 var index = layer.load(1, { shade: [0.5,'#000'] //0.5透明度的黑色背景 }); }, success : function(result) { // 上传成功想要做的事情 }, complete : function(result){//请求完成 //询问框 layer.confirm('广告主修改成功!页面将跳转到列表页。', { btn: ['确定'] //按钮 }, function(){ window.location.href = "www.baidu.com";// 完成后页面跳转 }); } , error : function(xhr, status, msg) { alert("状态码 "+status+"; "+msg) layer.msg('玩命加载中..'); } }; $("#power-view-file-form").ajaxSubmit(options);
complete和error方法可省略,一切的判断只需在success方法即可。
Controller控制器,上传
@ResponseBody @RequestMapping(value = "aaa", method = { RequestMethod.POST }) public Map<String, Object> aaa(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) { Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> retMap = new HashMap<String, Object>(); Boolean boo = true; try { if (file.isEmpty()) { boo = false; map = StringUtil.retParam(boo, "请选择图片", retMap); } else { // 1.获取新文件名 // 获取原始文件名 String originalFileName = file.getOriginalFilename(); // 获取文件扩展名 String suffix = FilenameUtils.getExtension(originalFileName); if (!(suffix.equals("jpg") || suffix.equals("bmp") || suffix.equals("gif") || suffix.equals("png"))) { boo = false; map = StringUtil.retParam(boo, "请选择正确格式的文件", retMap); } else { // 构造新的文件名 String newFileName = System.currentTimeMillis() + "." + suffix; // 2.判断创建上传的目录是否存在,不存在则新增文件夹 File uploadDir = new File(request.getSession().getServletContext().getRealPath("/img")); if (!uploadDir.exists() || !uploadDir.isDirectory()) { uploadDir.mkdirs(); } // 3.复制文件流到上传目录下的新文件 File uploadFile = new File(uploadDir.getAbsolutePath() + "/" + newFileName); InputStream inputStream = file.getInputStream(); OutputStream outputStream = new FileOutputStream(uploadFile); IOUtils.copy(inputStream, outputStream); // 关闭流 IOUtils.closeQuietly(inputStream); IOUtils.closeQuietly(outputStream); String fileUrl = request.getContextPath() + "/img/" + newFileName; retMap.put("fileUrl", fileUrl); map = StringUtil.retParam(boo, "图片上传成功", retMap); } } } catch (Exception e) { boo = false; map = StringUtil.retParam(boo, "服务器异常", retMap); } return map; }
关于上传下载代码,网上很多。我这里只需要上传即可。
以上就是js控制form表单提交后页面跳转的内容了。
如果你复制代码运行,你会发现有错,那是因为还需要下载一个插件jQuery-form.js,我已经找不到那个下载路径,所以这里就不提供下载了。
相关文章推荐
- form表单,easyUi,jquery提交后,SpringMvc后台返回时,IE浏览器提示下载文件
- DEDE自定义表单点击提交后,如何直接跳转到当前提交页?
- 自定义的表单提交后 提示感谢您的参与( 停留时间)
- ajax方式提交带文件上传的表单,上传后不跳转
- ajax方式提交带文件上传的表单,上传后不跳转
- DEDE自定义表单点击提交后,如何直接跳转到当前提交页?
- DEDECMS自定义表单提交后的跳转链接修改方法
- 一个IE7下,用form表单跳转iframe提交,然后下载文件。遇到的很有意思的问题
- form表单action提交表单,页面不跳转且表单数据含文件的处理方法
- dede自定义表单提交后的提示信息改弹窗提示并停留在当前页
- 织梦表单提交后中间跳转页面提示文字修改
- form表单上传文件前校验,提交后不跳转界面
- dedecms自定义表单,提交后跳转地址
- IE10以下的IE浏览器在form表单提交、a标签等场景下,接收application/json类型的响应时,会提示是否要下载该json文件
- 公司-->超级链接跳转和表单提交,删除的表单提交和删除失败的提示信息
- ie8 ajaxSubmit上传文件提示下载和提交表单两次
- DEDECMS自定义表单提交后的跳转链接修改方法
- 文件的上传+下载+表单的重复提交问题 +自定义拦截器:
- struts form表单提交action处理之后没有跳转页面
- Form表单只提交数据而不进行页面跳转的方法