一个图片上传预览

一、一个按钮上传文件操作

前台选择文件,只能通过input的file类型的文件选择框操作。但有时却为了界面的美观,要求用按钮来完成。

第一步、隐藏文件选择框

第二步、设置按钮事件onclick,触发文件选择框事件

第三步、选择文件后自动上传,触发文件选择时事件onchange

第四步,使用插件上传,插件有很多,大家可以网上找,我这边用的是jquery.form.js插件(http://plugins.jquery.com/form/)
 

<script type="text/javascript" src="./js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="./js/jquery.form.js"></script>
<body>   
    
<form id="upLoadForm" enctype="multipart/form-data">  
    <input type="file" name="file" id="file" style="display:none" multiple="multiple" onchange="fileUpload()">  
    <span id="upLoad" onclick="selectFile()">上传文件</span>
</form>
    
    <script type="text/javascript">
	//打开文件选择框
	 function selectFile(){
	      $("#file").trigger("click");
	 }
	
	function fileUpload(){
		var option = {
		        url : "http://127.0.0.1:8080/struts2/user/UserAction_add",     //自己的url
		        type : 'POST',
		        datatype:'json',
		        clearForm: true,//提交后是否清空
		        success : function(map) {
		         alert("上传成功!");
		        } ,
		        error:function(data){
		         alert("页面请求失败!");
		        }
		    };
		    $("#upLoadForm").ajaxSubmit(option);
			return false;
            //或者ajax等
	}

</script>

    

二、一个图片上传预览

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ssm</title>
	<script type="text/javascript" src="./static/js/jquery/jquery-3.3.1.min.js"></script>
</head>
<body>
	<h4>文件上传</h4>		
	<form name="form0" id="form0">  
			<img src="" id="img0" style="width: 130px;height: 135px;" onclick="selectFile()" required="required"><br>
			<input type="file" name="file" id="file0" style="display:none" multiple="multiple" />  
			<span style="color: red;">点击图片上传</span>
	</form>  
	
<script>   
//打开文件选择框
function selectFile(){
     $("#file0").trigger("click");
}

$("#file0").change(function(){  
		 var objUrl = getObjectURL(this.files[0]) ;//获取文件信息  
		 //console.log("objUrl = "+objUrl + "==== "+this);  
		 checkFile(this)
		 if (objUrl) {  
		  $("#img0").attr("src", objUrl);  
		 }   
}) ;  
function getObjectURL(file) {  
		 var url = null;   
		 if (window.createObjectURL!=undefined) {  
		  url = window.createObjectURL(file) ;  
		 } else if (window.URL!=undefined) { // mozilla(firefox)  
		  url = window.URL.createObjectURL(file) ;  
		 } else if (window.webkitURL!=undefined) { // webkit or chrome  
		  url = window.webkitURL.createObjectURL(file) ;  
		 }  
		 return url ;  
} 

//检查是否是图片
function checkFile(file) {
   var filehz = getFileHz(file.value);
   //console.log(filehz);
   if(filehz == "" || filehz == null){
   	toastr.error("请重新选择!");
   	return false;
   }
   if ("png" != filehz && "jpg" != filehz && "jpeg" != filehz) {
       toastr.error("上传的文件类型不符合要求!");
       return false;
   }
}
function getFileHz(filename) {
   var arr = new Array();
   arr = filename.split(".");
   return arr[arr.length - 1];
}
</script>

</html>

           选择图片之后  

参考文章

https://blog.csdn.net/wdehxiang/article/details/77435975

https://blog.csdn.net/qq_41485414/article/details/80051845

猜你喜欢

转载自blog.csdn.net/qq_42402854/article/details/84994085