asp.net异步上传

界面如下:

需要用到MyAjaxForm.js库

<script src="~/Scripts/MyAjaxForm.js"></script>

 @using (Ajax.BeginForm("AjaxAddUserPrintReport", "Admin", new AjaxOptions() { HttpMethod = "post", LoadingElementId = "loading", OnSuccess = "afterOk",OnFailure="afterErr" }, new { id = "addform", @class = "form-horizontal", enctype = "multipart/form-data" }))    {

<div class="form-group">
            <label for="uploadfile" class="col-md-2 control-label">  上传文件:</label>
            <div class="col-md-4">
                <textarea class="form-control hidden" id="Uploadfileurl" name="Uploadfileurl" rows="3"></textarea>
                <input type="file" id="fileup" name="fileup" />
                <button type="button" id="btnupload" class="btn btn-warning btn-sm">上传</button>
            </div>
            <div id="showfile" class="col-md-4">

            </div>
        </div>}
  //点击上传文件
        $("#btnupload").click(function () {
            if ($(":file").val() == "")
            {
                alert("请选择上传文件后再点击上传按钮");
                return;
            }
            $("#addform").ajaxSubmit({
                error: function (error) { alert(error); },
                url: ‘/Admin/AjaxUploadFile‘,
                type: "post",
                success: function (data) {
                    var arr = data.split(":");
                    if (arr[0] == "ok") {
                        $("#Uploadfileurl").val($("#Uploadfileurl").val().trim()==""?arr[1]: $("#Uploadfileurl").val()+ "," + arr[1]);
                        addfile();
                    }
                    else {
                        alert(arr[1]);
                    }
                }
            });
        });

MVC中上传代码如下:

 /// <summary>        /// 上传文件,最大上传10M        /// </summary>        /// <returns></returns> 

public ActionResult AjaxUploadFile()
        {
            try
            {
                HttpPostedFileBase uploadfile = Request.Files["fileup"];
                if (uploadfile == null)
                {
                    return Content("no:非法上传");
                }
                if (uploadfile.FileName == "")
                {
                    return Content("no:请选择文件");
                }
                if (uploadfile.ContentLength > 10 * 1024 * 1024)
                {
                    return Content("no:上传文件超过10M,实际上传大小为" + uploadfile.ContentLength);
                }
                string filename = Path.GetFileName(uploadfile.FileName);
                string fileExt = Path.GetExtension(filename);
                StringBuilder sbtime = new StringBuilder();
                sbtime.Append(DateTime.Now.Year).Append(DateTime.Now.Month).Append(DateTime.Now.Day).Append(DateTime.Now.Hour).Append(DateTime.Now.Minute).Append(DateTime.Now.Second);
                string dir = "/UploadFile/" + getUserBySession().Name + "/"  + filename.Substring(0, filename.LastIndexOf(".")) + "_" + sbtime.ToString() + fileExt;
                string realfilepath = Request.MapPath(dir);
                string readDir = Path.GetDirectoryName(realfilepath);
                if (!Directory.Exists(readDir))
                    Directory.CreateDirectory(readDir);

                uploadfile.SaveAs(realfilepath);
                return Content("ok:" + dir);
            }
            catch (Exception ex)
            {
                return Content("no:" + ex.Message);
            }
时间: 2024-10-01 20:44:52

asp.net异步上传的相关文章

ASP.NET MVC 文件异步上传问题处理

最近在做一个网站,用asp.net MVC4.0来开发,今天遇到了个小问题,通过查找相关渠道解决了,在这里把这个问题写出来,问题非常简单,不喜勿喷,mark之希望可以给遇到相同问题的初学者一点帮助.我要实现文件的异步上传,前端提交的文件后台老是获取不到.我前端是这样写的: @using (Ajax.BeginForm("UpdateNewInfo", "Home", new AjaxOptions() { HttpMethod = "post",

ASP.NET WebAPi(selfhost)之文件同步或异步上传

前言 前面我们讲过利用AngularJs上传到WebAPi中进行处理,同时我们在MVC系列中讲过文件上传,本文结合MVC+WebAPi来进行文件的同步或者异步上传,顺便回顾下css和js,MVC作为客户端,而WebAPi利用不依赖于IIS的selfhost模式作为服务端来接收客户端的文件且其过程用Ajax来实现,下面我们一起来看看. 同步上传 多余的话不用讲,我们直接看页面. <div class="container"> <div> @if (ViewBag.

ASP.NET MVC 使用jquery.form.js 异步上传 在IE下返回值被变为下载的解决办法

错误记录: <script type="text/javascript"> $(function () { $(document).off("ajaxSend"); //异步上传 $("#Submit").click(function () { if ($("#selectFileButton").val() == "") { return false; } $("#fileForm&

Asp.Net Mvc异步上传文件的方式

今天试了下mvc自带的ajax,发现上传文件时后端action接收不到文件, Request.Files和HttpPostedFileBase都接收不到.....后来搜索了下才知道mvc自带的Ajax不支持文件上传,无奈之下只能用其他的方式 第一种方式:通过 jquery的ajaxSubmit --->(先引入jQuery脚本)需要引入jquery.form.min.js(可以通过NuGet下载) 直接上代码 @{ Layout = null; } <!DOCTYPE html> <

百度 flash html5自切换 多文件异步上传控件webuploader基本用法

双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name="renderer" content="webkit"> 若页面需默认用ie兼容内核,增加标签:<meta name="renderer" content="ie-comp"> 若页面需默认用ie标准内核,增加标签

C#中使用iframe结合js实现图片异步上传

将图片上传的页面放在iframe中,通过iframe跳转到另一个页面,在该页中将图片提交到服务器,而不需要对主页进行刷新,提交成功后用脚本(回调函数)实现上传的图片在主页面的显示. 图片选择页面 Add.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Add.aspx.cs" Inherits="_Add" %> <!DOCTYPE h

文件上传之——用SWF插件实现文件异步上传

之前提高过几篇文件上传,那些都不错.今天小编带领大家体会一种新的上传方法,及使用Flash插件实现文件上传. 使用Flash的好处就是可以解决浏览器兼容性问题.之前我写的一个快捷复制功能也是利用的Flash. 最近一直在用MVC,所以还是以MVC举例:先来张效果图: UploadIndex2.cshtml代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&q

form、iframe实现异步上传文件

转载自:http://blog.csdn.net/sunjing21/article/details/4779321 实现主要功能: 页面提供一个上传图片的input file选择框,用于上传某一类型的数张图片 每次选择完本地图片后,图片便异步存储到后台的文件夹中: 并将路径信息存储到数据库中: 页面上显示此图的缩略图,并在旁边显示一个删除标记,当点击时,将此图片从页面.数据库.后台的文件夹中删除 input file选择框清空,再点击用于上传下一张图片: JSP页面编写如下: <div> &

jQuery插件-ajaxFileUpload异步上传文件

ajaxFileUpload是前两天学习过程中接触到的一个JQ插件,功能很简单,就是实现异步上传文件的功能. 1.语法介绍 $.ajaxFileUpload([setting]); 参数说明: (1)url——执行上传处理的地址: (2)secureuri——是否启用安全提交,默认为false: (3)fileElementId——需要上传<input type=”file”>控件id属性值: (4)data——自定义参数,即需要额外传递的JSON格式数据: (5)type——请求方式,提交自