异步上传文件

20 篇文章 0 订阅
html代码:
<head>  //所需要的两个JS
<scriptsrc="jquery-1.4.2.min.js"type="text/javascript"></script>
<scriptsrc="ajaxfileupload.js"type="text/javascript"></script>
</head>
<img alt="" src=""id="img"   style="display: none"/>
<input id="fup" name="fup"type="file" />
<input id="btnUp" type="button" value="上传"οnclick="ajaxFileUploads();"/>


下载:http://www.phpletter.com/contents/ajaxfileupload/ajaxfileupload.js

JS代码:
function ajaxFileUploads()
{
$.ajaxFileUpload(
           {
           
url:'Ajax_fileupload.aspx ,
         secureuri:false,
         fileElementId:'fup',            
         dataType: 'json',                    
         success: function (data,status)
         {
             if(data.err=="")
              {
              document.getElementByIdx_x("img").style.display="block";

              document.getElementByIdx_x("img").src=data.msg;
              }
              else
              {
              $('#sperr').text(data.err);
              }
         },
         error: function (data, status,e)
         {
             $('#sperr').text("上传失败!");
         }
       });
}

主要参数说明:
1,url表示处理文件上传操作的文件路径,可以测试URL是否能在浏览器中直接访问,如上:upload.php
2,fileElementId表示文件域ID,如上:fileToUpload
3,secureuri是否启用安全提交,默认为false
4,dataType数据数据,一般选json,javascript的原生态
5,success提交成功后处理函数
6,error提交失败处理函数

Ajax_fileupload.aspx页面:
protected void Page_Load(object sender,EventArgs e)
{
     HttpFileCollection files =System.Web.HttpContext.Current.Request.Files;
     HttpPostedFile file = files["fup"];
      if(file.ContentLength <=Convert.ToInt32(SizeFunction() * 1024 *1024))   //SizeFunction()获得文件限制大小可以自己写在配置文件里,限制上传的大小
      {
       if(IsValidFileType(file.FileName)) //验证文件类型
       {
         string picPaht =Server.MapPath(FileFunciton());  //FileFunction()   文件保存的路径   这里的路径,名字  随自己要求设置,我这里最简单的日期了.
         Random rd = newRandom();
         string name =DateTime.Now.ToString("yyyyMMddhhmmssfff") + rd.Next(1000) +GetExtension(file.FileName);
         string strNewPath =GetSaveFilePath(picPaht) + name;
         file.SaveAs(strNewPath);
         Response.Write("{msg:'" +dal.ImgUrl() + name + "',err:''}");
       }
       else
       {
        Response.Write("{msg:'',err:'类型错误!'}");
       }
      }
      else
      {
      Response.Write("{msg:'',err:'大小错误!'}");
      }
}

///<summary>
/// 验证文件类型
/// </summary>
/// <paramname="FileName"></param>
///<returns></returns>
private bool IsValidFileType(string FileName)
{
      string[]_AcceptedFileTypes = TypeFunction().Split('|'); //TypeFunction()获得文件限制类型 这里我是以"|"分隔, 获得数组, 循环验证的
      string ext =FileName.Substring(FileName.LastIndexOf(".") + 1, FileName.Length -FileName.LastIndexOf(".") - 1);
      for (int i =0; i < _AcceptedFileTypes.Length; i++)
      {
       if (ext ==_AcceptedFileTypes)
       {
         return true;
       }
      }
      returnfalse;
}


///<summary>
/// 获得文件扩展名
/// </summary>
/// <paramname="fileName"></param>
///<returns></returns>
private string GetExtension(string fileName)
{
      try
      {
       int startPos =fileName.LastIndexOf(".");
       string ext =fileName.Substring(startPos, fileName.Length - startPos);
       return ext;
      }
      catch
      {
       return string.Empty;
      }
}


///<summary>
/// 创

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值