时间:2016-02-16 03:11 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net javascript 文件无刷新上传实例代码第1/2页】,下面是详细的讲解!
asp.net javascript 文件无刷新上传实例代码第1/2页
var g_XMLHttp=null;
var g_Stream=new ActiveXObject('ADODB.Stream');
var g_SendCount=0;
var g_TotalCount=0;
var g_FileSize=0;
var g_UpFileType=0 ;
var g_BlockSize=1024 * 100; //每段分为100K
var fileExtName="" ; //文件后缀名
var g_PauseFlag=false;
var g_BeginTime=null;
var g_guageFlag=false ;
var Nfilename="" ;
function Init()
{
InitTitleEvent();
BeginUpLoadFile();
}
function MoveGuage()
{
var t_Time=new Date();
var t_OddTime=Math.ceil((t_Time.getTime() - g_BeginTime.getTime()) / g_SendCount * (g_TotalCount - g_SendCount) / 1000);
var t_OddTimeString='';
if(t_OddTime >=3600)
{
t_OddTimeString=Math.floor(t_OddTime / 3600) + '时';
t_OddTime %=3600;
}
if(t_OddTime >=60)
{
t_OddTimeString +=Math.floor(t_OddTime / 60) + '分';
t_OddTime %=60;
}
document.all.lblLeavingsTime.innerText=t_OddTimeString + t_OddTime + '秒';
}
//第1个参数表示上传的类型,为命名新文件提供参考
//第2个参数表示要不要显示状态条
function BeginUpLoadFile(upFileType, guageFlag)
{
if(g_Stream==null)
{alert("您的机器不支持ADODB.Stream."); }
else
{
g_guageFlag=guageFlag ;
g_UpFileType=upFileType;
g_Stream.Type=1;
g_Stream.Open();
var pth=document.getElementById("hidFilePath").value ;
g_Stream.LoadFromFile(pth);
var fname=pth.split('\\');
Nfilename=fname[fname.length-1] ;
fileExtName=Nfilename.split('.')[1].toLowerCase();
g_Stream.position=0;
g_SendCount=1;
g_FileSize=g_Stream.size ;
if (upFileType==0) //上传图片
{
if (g_FileSize > 1024 * 1024 * 2 ) // 不能大于2M
{
document.all.returnInfo.innerText="文件大小超过2M!" ;
g_PauseFlag=true;
return ;
}
var str="bmp,jpg,jpeg,gif,png,icon";
if (str.search(fileExtName)==-1) //图片格式不能超出范围
{
document.all.returnInfo.innerText="文件格式不正确,请选择bmp、jpg、jpeg、gif、png、icon格式图片!" ;
g_PauseFlag=true;
return ;
}
}
g_TotalCount=Math.ceil(g_Stream.size / g_BlockSize);
g_BeginTime=new Date();
SendData();
}
}
function SendData()
{
if(g_PauseFlag)
{
return;
}
if(g_SendCount <=g_TotalCount)
{
var t_XMLDOM=null;
var t_Root=null;
var t_Node=null;
var t_Attribute=null;
t_XMLDOM=new ActiveXObject('Microsoft.XMLDOM');
t_XMLDOM.async=false;
t_XMLDOM.resolveExternals=false;
t_Node=t_XMLDOM.createProcessingInstruction('xml','version="1.0"');
t_XMLDOM.appendChild(t_Node);
t_Root=t_XMLDOM.createElement('Root');
t_XMLDOM.appendChild(t_Root);
t_XMLDOM.documentElement.setAttribute('xmlns:dt','urn:schemas-microsoft-com:datatypes');
t_Node=t_XMLDOM.createElement('Data');
t_Node.dataType='bin.base64';
t_Node.nodeTypedValue=g_Stream.Read(g_BlockSize);
t_Attribute=t_XMLDOM.createAttribute('upfiletype');
t_Attribute.value=g_UpFileType;
t_Node.setAttributeNode(t_Attribute);
t_Attribute=t_XMLDOM.createAttribute('fileindex');
t_Attribute.value=g_SendCount;
t_Node.setAttributeNode(t_Attribute);
t_Attribute=t_XMLDOM.createAttribute('totalcount');
t_Attribute.value=g_TotalCount;
t_Node.setAttributeNode(t_Attribute);
t_Attribute=t_XMLDOM.createAttribute('filesize');
t_Attribute.value=g_FileSize;
t_Node.setAttributeNode(t_Attribute);
t_Attribute=t_XMLDOM.createAttribute('blocksize');
t_Attribute.value=g_BlockSize;
t_Node.setAttributeNode(t_Attribute);
t_Attribute=t_XMLDOM.createAttribute('fileextname');
t_Attribute.value=fileExtName;
t_Node.setAttributeNode(t_Attribute);
t_Root.appendChild(t_Node);
g_XMLHttp=new ActiveXObject('Microsoft.XMLHttp');
g_XMLHttp.open('POST','AcceptFile.aspx',true);
g_XMLHttp.onreadystatechange=XMLHttpStateChange;
g_XMLHttp.send(t_XMLDOM);
if (g_guageFlag){ MoveGuage(); }
}
else
{
var xx=spider.BookFile.FileObj.getFileName() ;
alert(xx.value) ;
document.all.lblLeavingsTime.innerText='0秒';
CloseWindow(document.all.cmdClose);
document.all.returnInfo.innerText='文件上传完成!';
}
}
function XMLHttpStateChange()
{
if(g_XMLHttp.readyState==4)
{
var rstr=g_XMLHttp.responseText ;
if(rstr=='OK')
{
g_SendCount++;
SendData();
}
else
{
document.all.returnInfo.innerText=rstr;
CloseWindow(document.all.cmdClose);
}
}
}
function CloseWindow(p_OBJ)
{
g_PauseFlag=true;
g_Stream.Close();
}
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Member_up : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string mz=HttpContext.Current.Request.QueryString["nm"].ToString();
string uperr="";
HttpFileCollection files=HttpContext.Current.Request.Files;
if (files.Count>0)
{ uperr=upSingleFile(files[0], mz); }
else { uperr="ok"; }
HttpContext.Current.Session["upInfo"]=uperr;
Response.Write(uperr);
}
//上传文件
private string upSingleFile(HttpPostedFile file, String theFileName)
{
string infos="";
bool fileOK=false;
string fileName, fileExtension ;
fileName=System.IO.Path.GetFileName(file.FileName);
if (fileName !="")
{
if (file.ContentLength >=1024 * 1024 * 2)
{
infos="上传文件太大,目前仅支持2M以内的图片上传!";
}
else
{
fileExtension=System.IO.Path.GetExtension(fileName).ToLower();
String[] allowedExtensions={ ".jpg", ".jpeg", ".gif", ".bmp", ".png", ".icon" };
for (int i=0; i < allowedExtensions.Length; i++)
{
if (fileExtension==allowedExtensions[i])
{
fileOK=true;
break;
}
}
if (!fileOK)
{
infos="不支持上传此类型文件!目前支持的图片格式有:jpg|jpeg|gif|bmp|png|icon";
}
else
{
file.SaveAs(System.Web.HttpContext.Current.Request.MapPath("~/books/BookPic/") + theFileName);
infos="ok" + theFileName;
}
}
}
else
{
infos="没有读取到文件!";
}
return infos;
}
}
关于asp.net javascript 文件无刷新上传实例代码第1/2页的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
