//这是写的一个类,具体是上传图片的上传和下载

public class FileResult
    {
        public int Code { get; set; }
        public string Msg { get; set; }
        public string Url { get; set; }
    }

//首先在api方法内新建一个控制器

//控制器内写关于上传和下载的具体代码

// 允许上传的文件扩展名
        public string[] ExtentsfileName = new string[] { ".doc", ".xls", ".png",".jpg" };
        public string UrlPath = "/Upload/";
//下载
        [HttpGet]
        public void DownLoad(string Url)
        {
            string filePath = HttpContext.Current.Server.MapPath(Url);
            FileInfo fi = new FileInfo(filePath);
            if (File.Exists(filePath))
            {
                HttpResponse response = HttpContext.Current.Response;
                response.Clear();
                response.ClearHeaders();
                response.ClearContent();
                response.Buffer = true;
                response.AddHeader("content-disposition", string.Format("attachment; FileName={0}", fi.Name));
                response.Charset = "GB2312";
                response.ContentEncoding = Encoding.GetEncoding("GB2312");
                response.ContentType = MimeMapping.GetMimeMapping(fi.Name);
                response.WriteFile(filePath);
                response.Flush();
                response.Close();
            }
        }
//上传
        [HttpPost]
        public FileResult UpLoad()
        {
            var request = HttpContext.Current.Request;
            if (request.Files.Count > 0)
            {
                var file = request.Files[0];
                var extenfilename = Path.GetExtension(file.FileName);
                string path = HttpContext.Current.Server.MapPath(UrlPath);
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                if (ExtentsfileName.Contains(extenfilename.ToLower()))
                {
                    string urlfile = UrlPath + DateTime.Now.ToFileTime() + extenfilename;
                    string filepath = HttpContext.Current.Server.MapPath(urlfile);
                    file.SaveAs(filepath);
                    return new FileResult() { Code = 0, Msg = "上传成功", Url = urlfile };
                }
                else
                {
                    return new FileResult() { Code = -1, Msg = "只允许上传指定格式文件"+string.Join(",",ExtentsfileName), Url = "" };
                }
            }
            else
            {
                return new FileResult() { Code = -1, Msg = "不能上传空文件", Url = "" };
            }
        }
    }

//写完api方法之后写mvc前台

<input type = "file" id="f1" />
<input type = "button" value="aa" onclick="ff()"/>
< script >
    function ff()
{
    var formData = new FormData();
    var file = document.getElementById("f1").files[0];
    formData.append("fileInfo", file);
        $.ajax({
    url: "https://localhost:44370/api/FileOperation/UpLoad",
            type: "POST",
            data: formData,
            contentType: false,//必须false才会自动加上正确的Content-Type
            processData: false,//必须false才会避开jQuery对 formdata 的默认处理,XMLHttpRequest会对 formdata 进行正确的处理
            success: function(data) {
            if (data.Code < 0)
                alert(data.Msg)
                else
                alert(data.Url)
            },
            error: function(data) {
            alert("上传失败!");
        }
    });
}
</script>
<a href = "https://localhost:44370/api/FileOperation/DownLoad?Url=/FileUpload/132211303318715030.xls" > 下载 </ a >
 
 
//ps记住要在api先加上跨域文件,不然api的方法会传不到mvc,本人经常忘记加跨域文件

最新文章

  1. java并发编程(十一)线程间的通信notify通知的遗漏
  2. mono for android 各版本下载地址
  3. webstorage[html5的本地数据处理]
  4. [转]SQL Server 高性能写入的一些总结
  5. ASP.NET状态管理之四(暂存状态HttpContext.Items)
  6. 功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上
  7. Android与PHP服务器交互
  8. 【编译原理】语法分析LL(1)分析法的FIRST和FOLLOW集
  9. C#使用DirectoryEntry操作IIS创建网站和虚拟路径
  10. CDZSC_2015寒假新人(1)——基础 b
  11. win2008服务器部署系统前需要做的一些工作
  12. Java文件流应用:复制文件
  13. jQuery实现移动端评测问卷功能
  14. javascript嵌套java实现jsp
  15. Windows bat批处理使用
  16. FindVisualChild
  17. centos查看系统版本
  18. MVC 5 Scaffolder + EntityFramework+UnitOfWork Pattern 代码生成工具集成Visual Studio 2013
  19. MySql开启远程用户登录GRANTALLPRIVILEGESON*.*TO&#39;root&#39;@&#39;%&#39;I MySql开启远程用户登录GRANTALLPRIVILEGESON*.*TO&#39;root&#39;@&#39;%&#39;I
  20. 1分钟了解MyISAM与InnoDB的索引差异

热门文章

  1. Java封装 概述
  2. AJAX教程——检视阅读
  3. Java 网络编程 -- 基于TCP 实现聊天室 群聊 私聊
  4. tp5--相对路径和绝对路径
  5. SNMP History and OID/MIB Tour
  6. Python带你做个愉快的&quot;动森&quot;玩家! (超简单代码)
  7. values/colors.xml
  8. ip地址与运算 ipcalc命令
  9. 8种MySQL分页方法总结
  10. 数论--HDU 1495 非常可乐