Java实现带图片新增个人信息

时间:2024-10-06 07:06:16

撰写时间:2019年07月06日
在这里插入图片描述
HTML代码:

<form  action="${ctx}/servlet/myAccountServlet?fun=insertPersonaldata" method="post" enctype="multipart/form-data" autocomplete="off">
	<img src="" alt="" width="150" height="180"  />
	<input type="file" display: none" name="IStudentPicture"  />
    <p class="text-center">上传的图片上限大小为10M!</p>
    <div class="form-group"> 
		<label class="name">&emsp;用户名:</label>
        <input type="text" class="form-control"  name="UserName" value="<%=sessionName%>" disabled />
	</div>
    <div class="form-group">
     	<label class="name">真实姓名:</label>
        <input type="text" class="form-control"  name="RealName" onkeyup="value=(/[^\u4E00-\u9FA5\a-\zA-\Z\.]/g,'')" />
     	<label class="name">身份证号:</label>
        <input type="text" class="form-control"  name="IDNumber" onkeyup="value=(/[^\d\a-\zA-\Z]/g,'')"/>
     </div>
     <div class="form-group">
     	<label class="name">手机号码:</label>
        <input type="text" class="form-control"  name="MobilePhone" maxlength="13" onkeyup="jointPhone()" onblur="verifyPhone()" />
      	<label class="name">性&emsp;&emsp;别:</label>
        <select class="form-control"  name="SexID">
        	<option value="0">------请选择------</option>
            <option value="true">男</option>
			<option value="false">女</option>
		</select>
    </div>
	<button class="btn btn-primary" type="button" onclick="Submit()">提交</button>
</form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

JS引用:

<script src="${ctx}/content/bootstrap-3.3.7-dist/js/jquery-2.0."></script>
<script src="${ctx}/content/plugins/-3.46.0/" type="text/javascript"></script><!-- 表单提交 -->
<script src="${ctx}/content/layer/"></script><!-- 提示框 -->
  • 1
  • 2
  • 3

JS:

//============================= 提交 ==============================
function Submit() {
	var layerIndex = (0);//显示 加载层
    $("#fmPersonalDetails").ajaxSubmit(function (data){
    	if ((typeof data)=="string") {
			data=(data);
		}
		(layerIndex);
		if ( == true) {
			(layerIndex);//关闭 加载层
			("信息填写成功!", { icon: 1, skin: "layui-layer-molv", offset: "250px" });
		} else {
			(, { icon: 2, skin: "layui-layer-molv", offset: "250px" });
		}
	})
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

servlet使用inputStream流来进行接收数据(一般字符串啥的不用这个方法,一般是文件上传下载时候才会使用这种方法)

private void insertPersonaldata(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	JsonReturn jsonReturn=new JsonReturn();
	(false);
	HttpSession session=();
	int userid=(Integer)("suserId");
	String basicInformation=null;
	//判断请求头中是否含有 enctype="multipart/form-data"
	if (!(request)) {
		("Error:表单中必须包含enctype=\"multipart/form-data\"");
	}else{
    	int sizeThreshold=1025*1024*5;//设置内存临界值 5M
    	int fileSizeMax=1025*1024*5;//设置单个文件的最大大小
    	int sizeMax=1025*1024*11;//设置请求的最大大小
    	//工厂
    	DiskFileItemFactory factory=new DiskFileItemFactory();
    	//当文件超过设置的值时就写入到临时文件夹中,否则就保存在内存
    	(sizeThreshold);
    	//设置DiskFileItemFactory的临时文件夹
    	// 代表系统的temp目录
    	(new File(("")));
    	ServletFileUpload upload =new ServletFileUpload(factory);
    	//设置编码
    	("utf-8");
    	//设置单个文件的最大大小
    	(fileSizeMax);
    	//设置请求的最大大小
    	(sizeMax);
    	//构建上传目录的路径
    	String uploadPath="D:\\TotalUploadFile\\ecolp\\upload";
    	//如果目录不存在就创建
    	File uploadDir=new File(uploadPath);
    	if (!()) {//判断是否存在
    		();//多层目录
    	}
    	PwPersonalDetails personalDetails=new PwPersonalDetails();
    	(userid);//用户id
    	try {
    		List<FileItem>fileItems=(request);//获取请求fileItems:参数和文件都在里面
    		for (FileItem fileItem : fileItems) {//遍历一个的取
    			if (()) {//判断fileItem是不是表单元素(非文件)
    				InputStream in=();//只能拿到流
    				InputStreamReader reader=new InputStreamReader(in,"utf-8");
    				BufferedReader bfReader=new BufferedReader(reader);
    				String strValue=();
    				String fieldName=();//获取字段名称
    				if ("RealName".equals(fieldName)) {//真实姓名
    					(strValue);
    				}else if ("IDNumber".equals(fieldName)) {//身份证号
    					(strValue);
    				}else if ("MobilePhone".equals(fieldName)) {
    					(strValue);//手机号码
    				}else if ("SexID".equals(fieldName)) {//性别
    					((strValue));						
    				}
    			else {
    				//文件元素
    				if ("IStudentPicture".equals(())) {
    					//获取文件名
    					String oldName=new File(()).getName();
    					String extensionName=".jpg";
    					//获取扩展名
    					if ((oldName!=null)&&(()>0)) {
    					int dot=('.');
    					if ((dot>-1)&&(dot<(()-1))) {
    						extensionName=(dot);
    					}
    				}
    				//构建文件名称
    				String fileName=()+"_"+ ()+extensionName;
    				String filePath=uploadPath++fileName;
    				//保存文件到盘
    				try {
    					(new File(filePath));
    				} catch (Exception e) {
    					();
    				}
    				//保存文件名称到数据库
    				(fileName);										
    				}
    			}
    		}
    		("utf-8");
    		boolean bolS=(personalDetails);
    		if (bolS) {
    			(true);
    			("新增成功");
    		}else {
    			("新增失败");
    		}
    	}catch (FileUploadException e) {
    		();
    		("服务器异常,请稍后再试");
    }
    ("utf-8");
    JSONObject jsonObject=(jsonReturn);		
    PrintWriter out=();
    (());
    ();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99