瀏覽器圖片上傳預覽

文件選擇框:<input type="file" id="uploadFile" name="uploadFile" οnchange="javascript:selectImage(this);">

<script>
		
		function selectImage(file) {
			
			if (!file.files || !file.files[0]) {
				return;
			}
			
			var fileLength = file.files.length;
			//限制數量爲8
			if(fileLength > 8){
				clearImage();
				alert("請重新選擇,最多添加8個文件!")
				return
			}
			// 驗證格式
			for(var i = 0 ; i < fileLength ; i++){
				if(!checkPicture(file.files[i])){
					clearImage();
					alert("請上傳  .jpg .png .gif .bmp類型的圖片文件")
					return
				}
			}
			// 圖片預覽(解決js閉包問題)
			for(var i = 0 ; i < fileLength ; i++){
				(function(i){
					var reader = new FileReader();
					reader.onload = function(evt) {
						/* document.getElementById('image').src = evt.target.result; */
						var imag = $("<img>").attr("id","image"+i).attr("src",evt.target.result).attr("style","width:44%;margin:2%");
						$("#imageArea").append(imag)
						image = evt.target.result;
					}
					reader.readAsDataURL(file.files[i]);
				})(i)
			}
		}
		// 文件上傳
		function uploadImage() {
			$.ajaxFileUpload({
		        //處理文件上傳操作的服務器端地址(可以傳參數,已親測可用)
		        url:"../repair_apply/uploadfile",
		        secureuri:false,                           //是否啓用安全提交,默認爲false 
		        fileElementId:'uploadFile',               //文件選擇框的id屬性
		        dataType:'JSON',                           //服務器返回的格式,可以是json或xml(需要大寫)等     text
		        success:function(data, status){            //服務器響應成功時的處理函數
		            data = data.replace(/<pre.*?>/g, ''); // ajaxFileUpload會對服務器響應回來的text內容加上
		            data = data.replace("</pre>", ''); // 本例中設定上傳文件完畢後,服務端會返回給前臺[0`filepath]
		            data = eval("("+data+")");
		        	if (data.success) {
		        		clearImage();
		        		alert("上傳成功")
		        			
		            } else  {
		            	alert("文件爲空,請重新上傳!")
		            }
		        },
		        error:function(data, status, e){ //服務器響應失敗時的處理函數
		           alert("上傳失敗");
		        }
		    }); 
		}
		
		function clearImage(){
			$("#uploadFile").val("");
			$("#imageArea").html('');
			//  上傳按鈕不可用
			$("#uploadImageBtn").attr("disabled",true);
 
		}
		//文件類型限制
		function checkPicture(file){
			return /.(jpg|png|gif|bmp|JPG|PNG|GIF|BMP)$/.test(file.name)?true:false;
		}
		
	</script>

 

我自己的案列:<input type="file" id="uploadFile" name="uploadFile" οnchange="javascript:selectImage(this);">

 

<script>
function selectImage(file) {
	if (!file.files || !file.files[0]) {
		return;
	}
	
	var fileLength = file.files.length;
	console.log(fileLength);
	//限制數量爲8
	if(fileLength > 1){
		alert("請重新選擇,最多添加1個文件!")
		return
	}
	// 驗證格式
	for(var i = 0 ; i < fileLength ; i++){
		if(!checkPicture(file.files[i])){
			alert("請上傳  .jpg .png .gif .bmp類型的圖片文件")
			return
		}
	}
	// 圖片預覽(解決js閉包問題)
	var reader = new FileReader();
	reader.onload = function(evt) {
		$('#imgsrc').attr('src',evt.target.result); 
	}
	reader.readAsDataURL(file.files[0]);
	
}
//文件類型限制
function checkPicture(file){
	return /.(jpg|png|gif|bmp|JPG|PNG|GIF|BMP)$/.test(file.name)?true:false;
}

</script>

 

發佈了57 篇原創文章 · 獲贊 4 · 訪問量 7484
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章