jquery + .net mvc3.0 + 无刷新上传文件

 

jquery + .net mvc3.0 + 无刷新上传文件

----- 概述 -----
1.HTML中 id="form_upload" 表单的target 属性要指向页面中不可见的 iframe( id="hidden_frame")
  这样提交到 ifrmae 中的请求会刷新这个不可见的帧

2.使用 TestSubmit() 方法提交数据就是因为方便传一些自定义的参数(currentPath)
3.服务器端的代码自己去研究吧!注意的是如果成功需要调用一个回调函数 UploadCallback
  刷新页面,这个回调函数要写在响应流中
---------------- 

一、HTML 内容
    <!--begin 上传文件-->
    <div id="divFileUpload" icon="icon-up" style="padding:5px;width:400px;height:200px;">
        <form action="UploadFile.aspx" id="form_upload" name="form_upload" encType="multipart/form-data"  method="post" target="hidden_frame" >  
            <input type="file" id="file_upload" name="file_upload" style="width:450">  
            <span id="upload_msg"></span>  
     <input type="button" value="上传" οnclick="TestSubmit();">
            <br>  
            <font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传</font>                
            <iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>  
        </form>
    </div>
    <!--end 上传文件-->

二、页面脚本
<script language="javascript">
//上传后的回调函数(上传文件的输出流调用)
function UploadCallback(msg)
{
    //    document.getElementById("form_upload").outerHTML = document.getElementById    $("form_upload").outerHTML;
    if(msg=="false")
    {
        alert("文件上传失败!");
        return;
    }
    $("#form_upload").val("");
    $('#divFileUpload').dialog('close');
    ReloadGridData();
}

function TestSubmit()
{
  $("#form_upload")
  .first()
  .attr("action", "UploadFile.aspx?currentPath=" + m_currentPath)
  .submit();
}
</script>

三、在 Global.asax 文件中配置的路由

      routes.MapRoute(
        "Default01", // 路由名称
        "{controller}/{action}.aspx/id", // 带有参数的 URL
        new { controller = "Explorer", action = "Index", id = UrlParameter.Optional } // 参数默认值
      );

四、.NET MVC 中控制器内的方法

public class ExplorerController : Controller
{
    /// <summary>
    /// 上传文件
    /// </summary>
    /// <returns></returns>
    [HttpPost]
    public string UploadFile(string currentPath)
    {
      if (currentPath.IsNullOrEmpty())
        return "false";

      string filename = string.Empty;
      string path = string.Empty;
      foreach (string upload in Request.Files)
      {
        if (!Request.Files[upload].HasFile())
          continue;

        filename = Path.GetFileName(Request.Files[upload].FileName);
        path = Path.Combine(currentPath.UrlDecode(), filename);
        Request.Files[upload].SaveAs(path);
        if (System.IO.File.Exists(path))
        {
          Response.Output.WriteLine("<script language='javascript'>parent.UploadCallback('true')</script>");
          return "true";
        }
        else
        {
          Response.Output.WriteLine("<script language='javascript'>parent.UploadCallback('false')</script>");
          return "false";
        }
      }

      return "false";
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET是一种非常强大的开发框架,可以用于开发各种类型的应用程序,包括Web应用程序。在.NET中,我们可以利用其提供的丰富的功能和工具来创建一个简便无刷新的文件和图片上传系统。 首先,我们可以使用ASP.NET MVC框架来构建我们的Web应用程序。这个框架提供了一个基于模型-视图-控制器(MVC)的编程模式,可以帮助我们更好地组织和管理我们的代码。 接下来,我们可以利用ASP.NET中的文件上传功能来实现批量上传。通过配置Web.config文件,我们可以设置允许上传的文件类型、最大上传文件大小等参数。在前端界面,我们可以使用HTML5的文件上传控件来允许用户选择并上传多个文件。 为了实现无刷新上传功能,我们可以借助AJAX技术。通过使用jQuery等JavaScript库,我们可以通过异步HTTP请求将文件上传到服务器,而不会引起页面的刷新。同时,我们还可以使用进度条组件来显示上传的进度,给用户更好的体验。 对于上传的文件和图片,我们可以在服务器端进行处理和管理。在.NET中,我们可以使用文件IO相关的类和方法来将上传的文件保存到指定的位置。我们还可以使用.NET中的图片处理库,如System.Drawing命名空间下的类,来对上传的图片进行裁剪、缩放或添加水印等操作。 最后,我们可以将上传成功的文件和图片的路径保存到数据库中,以便后续的查看和管理。在.NET中,我们可以使用Entity Framework或者直接使用ADO.NET等技术来访问和操作数据库。 通过上述的.NET技术和工具,我们可以方便地构建一个批量上传简便无刷新的文件和图片上传系统。这个系统不仅可以提供良好的用户体验,而且可以有效地管理和处理上传的文件和图片。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值