P2P文件上传
采用uploadify上传 官网:http://www.uploadify.com/ (有H5版本和flash版本,H5收费,所以暂时用flash)
uploadify的重要配置属性(http://www.uploadify.com/documentation/):
1.auto:是否选择之后立刻上传
2.buttonText:按钮的文字
3.fileObjName:服务器端获取上传文件name的属性
4.fileTypeDesc:文件类型显示提示描述
5.fileTypeExits:控制文件类型
6.formData:在上传过程中,额外的参数和值
7.height:按钮高度
8.multi:是否允许多选(默认为true)
9.overrideEvents:要覆盖的事件
10.swf:指向uploadify的flash文件
11:uploader:后台处理上传文件的地址
12:width:按钮的宽度
==================================
<script type="text/javascript">
$(function(){ //把上传身份证正面的a标签变成一个uploadify的组件
$("#uploadBtn1").uploadify({
buttonText:"身份证正面",
fileObjName:"file",
fileTypeDesc:"身份证正面图片",
fileTypeExts:"*.gif; *.jpg; *.png",
multi:false,
swf:"/js/plugins/uploadify/uploadify.swf",
uploader:"/realAuthUpload.do",
overrideEvents:["onUploadSuccess","onSelect"],
onUploadSuccess:function(file,data){
$("#uploadImg1").attr("src",data);
$("#uploadImage1").val(data);
}
}); $("#uploadBtn2").uploadify({
buttonText:"身份证反面",
fileObjName:"file",
fileTypeDesc:"身份证反面图片",
fileTypeExts:"*.gif; *.jpg; *.png",
multi:false,
swf:"/js/plugins/uploadify/uploadify.swf",
uploader:"/realAuthUpload.do",
overrideEvents:["onUploadSuccess","onSelect"],
onUploadSuccess:function(file,data){
$("#uploadImg2").attr("src",data);
$("#uploadImage2").val(data);
}
});
});
</script>
<div class="form-group">
<label class="col-sm-4 control-label" for="address">身份证照片</label>
<div class="col-sm-8">
<p class="text-help text-primary">请点击“选择图片”,选择证件的正反两面照片。</p>
<a href="javascript:;" id="viewExample">查看样板</a>
<div class="idCardItem">
<div>
<a href="javascript:;" id="uploadBtn1" >上传正面</a>
</div>
<img alt="" src="" class="uploadImg" id="uploadImg1" />
<input type="hidden" name="image1" id="uploadImage1" />
</div>
<div class="idCardItem">
<div>
<a href="javascript:;" id="uploadBtn2" >上传反面</a>
</div>
<img alt="" src="" class="uploadImg" id="uploadImg2"/>
<input type="hidden" name="image2" id="uploadImage2" />
</div>
<div class="clearfix"></div>
</div>
</div>

=================================================================
前台controller
1.需要导入fileupload的包
<!--fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
2.在springMvc中加入multipartResolver
<!--文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000"></property>
</bean>
package com.xmg.p2p.base.controller; import javax.servlet.ServletContext; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile; import com.xmg.p2p.base.domain.Userinfo;
import com.xmg.p2p.base.service.IRealAuthService;
import com.xmg.p2p.base.service.IUserinfoService;
import com.xmg.p2p.base.util.RequireLogin;
import com.xmg.p2p.base.util.UploadUtil; /**
* 实名认证控制
* @author Administrator
*
*/
@Controller
public class RealAuthController { @Autowired
private ServletContext servletContext;
/**
* 文件上传
*/
@RequestMapping("realAuthUpload")
@ResponseBody
public String realAuthUpload(MultipartFile file){
//先得到basepath文件的绝对路径
String basePath = servletContext.getRealPath("/upload");//会上传到webapp下的upload文件夹
String filename = UploadUtil.upload(file, basePath);
//System.out.println("/upload/"+filename);
return "/upload/"+filename;
}
}
工具类
package com.xmg.p2p.base.util; import java.io.File;
import java.io.IOException;
import java.util.UUID; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile; /**
* 上传工具
*
* @author Administrator
*
*/
public class UploadUtil { /**
* 处理文件上传
*
* @param file
* @param basePath
* 存放文件的目录的绝对路径 servletContext.getRealPath("/upload")
* @return
*/
public static String upload(MultipartFile file, String basePath) {
String orgFileName = file.getOriginalFilename();
String fileName = UUID.randomUUID().toString() + "."
+ FilenameUtils.getExtension(orgFileName);
try {
File targetFile = new File(basePath, fileName);
FileUtils.writeByteArrayToFile(targetFile, file.getBytes()); } catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
}
============================================================
P2P文件上传的更多相关文章
- Slack 开源替代品 Rocket.Chat(聊天,文件上传等等)
Rocket.Chat 是特性最丰富的 Slack 开源替代品之一. 主要功能:群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频 聊天,截图等等. Rocket.Chat ...
- 用c++开发基于tcp协议的文件上传功能
用c++开发基于tcp协议的文件上传功能 2005我正在一家游戏公司做程序员,当时一直在看<Windows网络编程> 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学 ...
- jquery.uploadify文件上传组件
1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...
- 11、Struts2 的文件上传和下载
文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...
- Java FtpClient 实现文件上传服务
一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...
- 小兔Java教程 - 三分钟学会Java文件上传
今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...
- ,net core mvc 文件上传
工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...
- Web开发安全之文件上传安全
很长一段时间像我这种菜鸡搞一个网站第一时间反应就是找上传,找上传.借此机会把文件上传的安全问题总结一下. 首先看一下DVWA给出的Impossible级别的完整代码: <?php if( iss ...
- AutoIt实现Webdriver自动化测试文件上传
在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...
随机推荐
- pythonweb框架Flask学习笔记01-ubuntu18.04下安装Flask
Flask 依赖两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集 由于各个项目工程之间可能存在python库版本的差异 为了防止库版本差异对项目开发产生的影响,使用virtu ...
- 【codeforces 623E】dp+FFT+快速幂
题目大意:用$[1,2^k-1]$之间的证书构造一个长度为$n$的序列$a_i$,令$b_i=a_1\ or\ a_2\ or\ ...\ or a_i$,问使得b序列严格递增的方案数,答案对$10^ ...
- 【poj3252】 Round Numbers (数位DP+记忆化DFS)
题目大意:给你一个区间$[l,r]$,求在该区间内有多少整数在二进制下$0$的数量$≥1$的数量.数据范围$1≤l,r≤2*10^{9}$. 第一次用记忆化dfs写数位dp,感觉神清气爽~(原谅我这个 ...
- linux 手动释放buff/cache
为了解决buff/cache占用过多的问题执行以下命令即可 syncecho 1 > /proc/sys/vm/drop_cachesecho 2 > /proc/sys/vm/drop_ ...
- Hadoop简介与伪分布式搭建—DAY01
一. Hadoop的一些相关概念及思想 1.hadoop的核心组成: (1)hdfs分布式文件系统 (2)mapreduce 分布式批处理运算框架 (3)yarn 分布式资源调度系统 2.hadoo ...
- Vue.js系列之三模板语法
Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解 ...
- oracle_jdbc_insert_into
package com.ayang.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.S ...
- 在webpack中配置vue.js
在webpack中配置vue.js 这里有两种在webpack中配置vue.js的方法,如下: 1.在main.js中引入vue的包: index.html: <!DOCTYPE html> ...
- Hadoop/Spark生态圈里的新气象
令人惊讶的是,Hadoop在短短一年的时间里被重新定义.让我们看看这个火爆生态圈的所有主要部分,以及它们各自具有的意义. 对于Hadoop你需要了解的最重要的事情就是 ,它不再是原来的Hadoop. ...
- Java封装Redis常用操作
package com.advance.Redis; import org.apache.log4j.Logger; import org.testng.annotations.Test; impor ...