# زبان های اسکریپتی > Classic ASP >  آپلود فایل با جاوا اسکریپت و asp classic - asp classic Uploder

## _elhfarzan

یکی از موارد مشکل در زبان های اسکریپتی آپلود فایل هستش
یه راه حل ساده یادتون میدم
میتونید با گرفتن base64  یک تصویر و انتقال آژاکس (آژاکس کلاسیک)  و آن طرف سمت سرور با کد asp classic  دریافت و تبدیل Base64  به تصویر 

این کل داستان آپلود بود

----------


## _elhfarzan

فیال سمت کلاینت :



<% @ Language=VBScript  CodePage = 65001%> 


<html dir="rtl">
<center>
<head>
	<title> جداسازی تصویر امضاء </title>
	<link rel="stylesheet" type="text/css" href="Css/NezamMohandesi.css" />
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<meta http-equiv="Content-Language" content="fa">
	
	<script type="text/javascript">


  	
     function Save(namefile)
		{ 	
		//alert(namefile);
       	var base6464=document.getElementById("Pice1").value ; 
		
		var da = new Date();
    	var Randd= da.getMilliseconds();
		if (window.XMLHttpRequest)
		  {
		  xmlhttp=new XMLHttpRequest();
		  }
		else
		  {
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		xmlhttp.onreadystatechange=function()
		  {
		  if (xmlhttp.readyState==4 && xmlhttp.status==200)
		    {
		    
		    	var strArray=xmlhttp.responseText.split('^');
		  		alert(strArray[1]);	
		    }
		  }	
		base6464= base6464.replace(/;/gi, "^");
		alert(base6464);
		xmlhttp.open("POST","AjaXUp.asp?Randd="+Randd+"&Fi  leName="+namefile,true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.send("base64="+encodeURIComponent(base6464  ));
		}






		function previewFile() {
		  var base64data ;
		  var image = document.getElementById('MYPIC');
		  var Info = document.getElementById('Info');
		  var file    = document.querySelector('input[type=file]').files[0];
		  var reader  = new FileReader();
		  var width ,height ;


		if((file.size)<=204800){		   
		  if (file) {
		   if ( /\.(jpe?g|png|gif)$/i.test(file.name) ) {
			  reader.readAsDataURL(file);
			  reader.onloadend = function() {
			  base64data = reader.result; 
			  document.getElementById('Pice1').value = base64data ;
			  image.src = base64data;
			  Info.innerHTML = "مشخصات تصویر :: عرض = "+ image.clientWidth+ " :: ارتفاع = "+image.clientHeight + " :: سایز = " +(Math.round(parseInt(file.size) / 1024)).toString()+" KB :: نام فایل = "+file.name;
			  onPreloadComplete(0,0)
			 }
			 }
			 else{alert("این نوع فرمت تصویر قابل قبول نمیباشد");}
		    }
		   }		   
		   else{alert('اندازه فایل غیر مجاز است. حداکثر 200 کیلو بایت');}
		}
		
	
	</script>
</head>	
<body  >
<input type="text" id="Pice1" >


<table>
	<tr>
		<th colspan="2" >1 - انتخاب تصویر اسکن شده : <input type="file" class="inputBig" onchange="previewFile()"> 	</th>
	</tr>
	<tr><td colspan="2" ><span  id="Info" ></span></td></tr>
	
	<tr><td colspan="2" >3 - <input type="button" class="bg7" value=" ثبت تصویر " onclick="Save('Farzan.jpg');" > </td></tr>
	<tr><td colspan="2" ><img id="MYPIC"   ></td></tr>
	
	
</table>




</body>
</center>
</html>

----------


## _elhfarzan

فایل دوم سمت سرور :



<% @ Language=VBScript  CodePage = 65001%>
<%
	
	
		Function SaveToBase64 (base64String)
					Set Doc = Server.CreateObject("MSXML2.DomDocument")
				    Set nodeB64 = Doc.CreateElement("b64")
				    nodeB64.DataType = "bin.base64"
				    nodeB64.Text = Mid(base64String, InStr(base64String, ",") + 1)
					
				 	dim bStream
				    set bStream = server.CreateObject("ADODB.stream")
				    bStream.type =  1
				    call bStream.Open()
				    call bStream.Write( nodeB64.NodeTypedValue )
				    call bStream.SaveToFile("E:\newsign\nezam" +"\"+request.querystring("FileName"), 2 ) 'Server.MapPath(".")
				    call bStream.close()
				    set bStream = nothing		
				    response.write "^"+"OK Send"	    
		 end function
	
		SaveToBase64(Replace(request("base64"),"^",";"))


%>

----------


## _elhfarzan

یکمی هم بهشون اماکنات دادم. خیلی راحت و فوری هستش
شمارو از کدهای فراوان قدیم خلاص میکنه

----------

