1. 程式人生 > >js上傳圖片,同時生成縮圖

js上傳圖片,同時生成縮圖

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
	<HEAD>
		<TITLE> New Document </TITLE>
		<META NAME="Generator" CONTENT="EditPlus">
		<META NAME="Author" CONTENT="">
		<META NAME="Keywords" CONTENT="">
		<META NAME="Description" CONTENT="">
	</HEAD>
	<BODY>
		<title>檔案上傳前臺控制檢測程式</title>
		<style>
			body, td {
				font-size: 12px;
			}
		</style>
		<script language=javascript>
			/*----------------------------------------
			 檔案上傳前臺控制檢測程式 v0.6

			 遠端圖片檢測功能
			 檢測上傳檔案型別

			 檢測圖片檔案格式是否正確
			 檢測圖片檔案大小
			 檢測圖片檔案寬度
			 檢測圖片檔案高度
			 圖片預覽

			 -----------------------------------------*/

			var ImgObj = new Image();
			//建立一個影象物件

			var AllImgExt = ".jpg|.jpeg|.gif|.bmp|.png|"//全部圖片格式型別
			var FileObj, ImgFileSize, ImgWidth, ImgHeight, FileExt, ErrMsg, FileMsg, HasCheked, IsImg//全域性變數 圖片相關屬性

			//以下為限制變數
			var AllowExt = ".jpg|.gif|.doc|.txt|"//允許上傳的檔案型別 0為無限制 每個副檔名後邊要加一個"|" 小寫字母表示
			//var AllowExt=0
			var AllowImgFileSize = 70;
			//允許上傳圖片檔案的大小 0為無限制 單位:KB
			var AllowImgWidth = 500;
			//允許上傳的圖片的寬度 0為無限制 單位:px(畫素)
			var AllowImgHeight = 500;
			//允許上傳的圖片的高度 0為無限制 單位:px(畫素)

			HasChecked = false;

			function CheckProperty(obj)//檢測影象屬性
			{
				FileObj = obj;
				if (ErrMsg != "")//檢測是否為正確的影象檔案 返回出錯資訊並重置
				{
					ShowMsg(ErrMsg, false);
					return false;
					//返回
				}

				if (ImgObj.readyState != "complete")//如果影象是未載入完成進行迴圈檢測
				{
					setTimeout("CheckProperty(FileObj)", 500);
					return false;
				}

				ImgFileSize = Math.round(ImgObj.fileSize / 1024 * 100) / 100;
				//取得圖片檔案的大小
				ImgWidth = ImgObj.width;
				//取得圖片的寬度
				ImgHeight = ImgObj.height;
				//取得圖片的高度
				FileMsg = "\n圖片大小:" + ImgWidth + "*" + ImgHeight + "px";
				FileMsgFileMsg = FileMsg + "\n圖片檔案大小:" + ImgFileSize + "Kb";
				FileMsgFileMsg = FileMsg + "\n圖片副檔名:" + FileExt;

				if (AllowImgWidth != 0 && AllowImgWidth < ImgWidth)
					ErrMsgErrMsg = ErrMsg + "\n圖片寬度超過限制。請上傳寬度小於" + AllowImgWidth + "px的檔案,當前圖片寬度為" + ImgWidth + "px";

				if (AllowImgHeight != 0 && AllowImgHeight < ImgHeight)
					ErrMsgErrMsg = ErrMsg + "\n圖片高度超過限制。請上傳高度小於" + AllowImgHeight + "px的檔案,當前圖片高度為" + ImgHeight + "px";

				if (AllowImgFileSize != 0 && AllowImgFileSize < ImgFileSize)
					ErrMsgErrMsg = ErrMsg + "\n圖片檔案大小超過限制。請上傳小於" + AllowImgFileSize + "KB的檔案,當前檔案大小為" + ImgFileSize + "KB";

				if (ErrMsg != "")
					ShowMsg(ErrMsg, false);
				else
					ShowMsg(FileMsg, true);
			}


			ImgObj.onerror = function() {
				ErrMsg = '\n圖片格式不正確或者圖片已損壞!'
			}
			function ShowMsg(msg, tf)//顯示提示資訊 tf=true 顯示檔案資訊 tf=false 顯示錯誤資訊 msg-資訊內容
			{
				msgmsg = msg.replace("\n", "<li>");
				msgmsg = msg.replace(/\n/gi, "<li>");
				if (!tf) {
					document.all.UploadButton.disabled = true;
					FileObj.outerHTML = FileObj.outerHTML;
					MsgList.innerHTML = msg;
					HasChecked = false;
				} else {
					document.all.UploadButton.disabled = false;
					if (IsImg)
						PreviewImg.innerHTML = "<img src='" + ImgObj.src + "' width='60' height='60'>"
					else
						PreviewImg.innerHTML = "非圖片檔案";
					MsgList.innerHTML = msg;
					HasChecked = true;
				}
			}

			function CheckExt(obj) {
				ErrMsg = "";
				FileMsg = "";
				FileObj = obj;
				IsImg = false;
				HasChecked = false;
				PreviewImg.innerHTML = "預覽區";
				if (obj.value == "")
					return false;
				MsgList.innerHTML = "檔案資訊處理中...";
				document.all.UploadButton.disabled = true;
				FileExt = obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
				if (AllowExt != 0 && AllowExt.indexOf(FileExt + "|") == -1)//判斷檔案型別是否允許上傳
				{
					ErrMsg = "\n該檔案型別不允許上傳。請上傳 " + AllowExt + " 型別的檔案,當前檔案型別為" + FileExt;
					ShowMsg(ErrMsg, false);
					return false;
				}

				if (AllImgExt.indexOf(FileExt + "|") != -1)//如果圖片檔案,則進行圖片資訊處理
				{
					IsImg = true;
					ImgObj.src = obj.value;
					CheckProperty(obj);
					return false;
				} else {
					FileMsg = "\n副檔名:" + FileExt;
					ShowMsg(FileMsg, true);
				}
			}

			function SwitchUpType(tf) {
				if (tf)
					str = '<input type="file" name="file1" onchange="CheckExt(this)" style="width:180px;">'
				else
					str = '<input type="text" name="file1" onblur="CheckExt(this)" style="width:180px;">'
				document.all.file1.outerHTML = str;
				document.all.UploadButton.disabled = true;
				MsgList.innerHTML = "";
			}
		</script>
		<form enctype="multipart/form-data" method="POST" onsubmit="return HasChecked;">
			<fieldset style="width: 372; height: 60;padding:2px;">
				<legend>
					<font color="#FF0000">圖片來源</font>
				</legend>
				<input type="radio" name="radio1" checked onclick="SwitchUpType(true);">
				本地
				<input type="radio" name="radio1" onclick="SwitchUpType(false);">
				遠端:
				<input type="file" name="file1" onchange="CheckExt(this)" style="width:180px;">
				<input type="submit" id="UploadButton" value="開始上傳" disabled>
				<br/>
				<div style="border:1 solid #808080;background:#E0E0E0;width100%;height:20px;color:#606060;padding:5px;">
					<table border="0">
						<tr>
							<td width="60" id="PreviewImg">預覽區</td><td id="MsgList" valign="top"></td>
						</tr>
					</table>
				</div>
			</fieldset>
		</form>
	</BODY>
</HTML>

相關推薦

js圖片同時生成

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE&

運用tp5圖片生成

最近想做個相簿,需要用到上傳影象,並且考慮到效能問題,還要生成縮圖,就學習下。在網上看了很多大神寫的文章,經過各種除錯總算出來了,分享下。不好之處,多多指教 ps:運用tp5圖片類生成縮圖時,一直無法找到圖片檔案。經過查詢,原來上傳的臨時檔案路徑被刪了,後改為上傳後

運用tp5圖片生成略圖

itl ase off controls keep cap hand fcm aud 最近想做個相冊,需要用到上傳圖像,並且考慮到性能問題,還要生成縮略圖,就學習下。在網上看了很多大神寫的文章,經過各種調試總算出來了,分享下。不好之處,多多指教 ? ? ps:運用tp

使用ASP.net(C#)批量圖片並自動生成,文字水印,圖片水印

因本網站上傳圖片的需要,參考很多成熟的經驗,在ASP.net平臺上使用C#語言,做了這一自動批量上傳圖片的.ASPX檔案,並經除錯成功,在本網站上使用,現發出來供大家參考,也希望高手多加指點。 本程式主要功能有: (1)可以根據自己的需要更改上傳到伺服器上的目錄,上傳

laravel實現圖片並且製作按照日期存放

先上程式碼吧:前端程式碼:有很多小夥伴在做表單上傳檔案的時候沒有注意表單的上傳格式是什麼,就可能導致上傳檔案、圖片不成功!<form id="form1" name="form1" class="form-horizontal form-label-left" enct

簡單實現前端選擇圖片並顯示略

效果 實現程式碼 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>修改資訊</title> <sc

圖片實時預覽

{   var image=new Image();   image.src=develop//develop/ImgD.src;if(image.width>0&& image.height>0){    flag=true;    if(image.width/image.he

Spring MVC圖片Java二進位制圖片寫入資料庫生成

步驟:1.將圖片上傳到伺服器的一個磁碟目錄下。 2.將剛才上傳好的圖片寫入資料庫image欄位。 一、上傳圖片:使用的是spring mvc 對上傳的支援。 jsp 頁面: <form name="uploadForm" id="uploadForm" m

thinkphp圖片生成

Image.php &lt;?php /** * 實現圖片上傳,圖片縮小, 增加水印 * 需要定義以下常量 * define('ERR_INVALID_IMAGE', 1); * define('ERR_NO_GD',

ajaxFileUpload.js 無重新整理圖片支援多個引數同時支援 ie6-ie10

ajaxFileUpload 無重新整理上傳的原理: 在頁面動態建立 form 表單和 ifram 貞,設定 form 表單提交的目標為 ifram 貞, 將檔案域和要 post 的引數動態寫入 form 表單中,然後提交 from 表單。 通過 window.attach

微信js圖片並 展示iphone下預覽

https useragent 預覽圖 shang 服務器 fun 相冊 put 相機 $(‘.addphotos‘).click(function(){ var that = $(this);

通過js操作圖片直接在頁面顯示

1.按照常規的邏輯: 我們通過ajax,或者form表單將檔案提交到後臺,將檔案儲存在某個臨時的目錄下,然後拿到這個儲存路徑,在前臺頁面賦值個<img>的src。 今天我們不走後臺邏輯,即點選上傳後,即可就在頁面進行顯示,ok,let's go! 2.程式碼如下 &l

多個swfupload例項圖片

先生成一個swfupload例項 var swfu_0 = new SWFUpload({ // Backend Settings upload_url: "index.php?_p=repair&_a=upl

JS圖片本地實時預覽

 <body>         <table width="100%" border="0" cellspacing="0" cellpadding="0">             <tbody>                

js圖片處理:壓縮旋轉校正圖片

隨著科技發展的浪潮,手機上的攝像機的畫素越來越高,成像的效果也越來越好。到現在一張手機拍攝的圖片在 2M 左右是很正常的。在實際的應用場景中經常需要使用者上傳圖片這樣的人機互動方式。為了提高使用者體驗,上傳圖片之前要進行壓縮。部分手機拍攝的圖片會帶有拍攝方向(如

js圖片預覽php後臺接收例項已改寫為多預覽

上傳圖片預覽這個出自超實用的js程式碼段,關於圖片的處理那一章,php後臺接收是網上比較少這方面的資源或者寫得很複雜,這裡簡單記錄。都是基於js 首先先呼叫兩個資料夾animateManage.js和viewimg.js,可以在網上下載。相當好用。 關鍵點是FileRead

thinkphp圖片並批量生成不同尺寸

1、配置資訊 //****************************各種型別圖片縮圖尺寸設定*************************// 'IMAGES_THUMB_SIZE_SETTING' =>array(

ajaxFileUpload.js圖片外掛全瀏覽器相容規避json錯誤帶檔案格式大小攔截

直接上程式碼了  有不理解的可以評論區@我  一起討論。 /* 2017/04/17-zhaoyf-ajaxFileUpload.js 無重新整理上傳圖片 jquery 外掛,支援 ie6-ie11 依賴:jquery.js 主方法:ajaxFileUpload 接受

圖片時等比放的一個小小算法

lba sim image 委托 fromfile tps 獲取 head 引用 protected void Button1_Click(object sender, EventArgs e) { int width = 300, h

使用 CKEditor 圖片 粘貼屏幕截

要求 license 回調 wan ade 做成 操作 rms 粘貼 之前寫過wangEditor,那真是好用,文檔也清晰,半天就搞定了,無奈沒有對應license,只好選擇別的。 外語一般,閱讀理解都靠蒙。CKEditor官方文檔看的我雲裏霧裏,國內的博客比較少,