关于无刷新的文件上传。

昨天做我的.net的Ajax项目时,需要一个无刷新的文件上传功能。查阅了大量的资料并且实验了很多自认为可行方法之后,发现通过javascript去创建一个文件上传的控件几乎是不可能的,这是由于javascript自身的一些安全限制造成的。也有一些使用第三方的空间或封装包的方法,但都不是真正的ajax,仅仅是在感官上对ajax异步的模仿。而且开发者使用这些第三方包也存在很多的不便。经过仔细的筛选,发现以下方法是使用最广,最方便的,也是最易理解的。

在页面上使用如下代码(注意,其中的iframe起到了关键的作用。);
<body>
<p id="f1_upload_process">Loading...<br/><img src="loader.gif" /></p>
<p id="result"></p>
<form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" οnsubmit="startUpload();" >
    File: <input name="myfile" type="file" />
          <input type="submit" name="submitBtn" value="Upload" />
</form>
 
<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>                 
</body>

//点击Upload按钮是使用如下函数
Upload
function startUpload(){
    document.getElementById('f1_upload_process').style.visibility = 'visible';
    return true;
}
//上传完之后,执行以下的回调函数。
function stopUpload(success){
      var result = '';
      if (success == 1){
         document.getElementById('result').innerHTML =
           '<span class="msg">The file was uploaded successfully!<//span><br/><br/>';
      }
      else {
         document.getElementById('result').innerHTML = 
           '<span class="emsg">There was an error during file upload!<//span><br/><br/>';
      }
      document.getElementById('f1_upload_process').style.visibility = 'hidden';
      return true;   
}
这个方法是不错,但是没有进行封装,使用上还不是非常方便。最近忙着赶项目,也没时间去封装一下。如果谁有时间的话,帮我封装一下,最好用prototype框架(呵呵,这是我个人的爱好,当然也可以用别的框架)。我的邮箱是:lifuan.china@gmail.com。如果哪天那位好友给封装了,记得给我来个邮件啊。谢谢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值