Vue.js 上传文件(后台使用.net)

Posted lunawzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue.js 上传文件(后台使用.net)相关的知识,希望对你有一定的参考价值。

页面部分

<div id="app">
    <form id="myform">
        <input type="file" name="fileup" id="fileup" v-on:change="fileChange($event)" />
    </form>

    <br />
    {{img}}
</div>
<script type="text/javascript">

    var app = new Vue({
        el: "#app",
        data: {
            img:""
        },
        methods: {
            fileChange: function (el) {
                if (!el.target.files[0].size) return;

                var obj = new FormData(document.getElementById("myform"));
                obj.append("name", "wzh");
                var _this = this;
                $.ajax({
                    type: post,
                    url: /home/ajax,
                    data: obj,
                    cache: false,
                    processData: false, // 不处理发送的数据,因为data值是Formdata对象,不需要对数据做处理
                    contentType: false, // 不设置Content-type请求头
                    success: function (res) {
                        var arr=res.split(:);
                        if(arr[0]=="ok"){
                            _this.img=arr[1];
                        }else{
                        alert(arr[1]);
                        }
                    },
                });
            },
        }
    })
</script> 

 Controller

public ActionResult ajax()
        {
                try
                {
                    HttpPostedFileBase uploadfile = Request.Files["fileup"];
                    if (uploadfile == null)
                    {
                        return Content("no:非法上传");
                    }
                    if (uploadfile.FileName == "")
                    {
                        return Content("no:请选择文件");
                    }

                    string fileExt = Path.GetExtension(uploadfile.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/" + 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);
                }
        }

 

以上是关于Vue.js 上传文件(后台使用.net)的主要内容,如果未能解决你的问题,请参考以下文章

node.js使用multiparty上传文件

springBoot的文件上传功能

Vue.Js(html5) + Java实现文件分片上传

使用带有渲染功能的 Vue.js 3 片段

ASP.NET Core MVC(C#) 文件上传及后台输出响应Aspose.Words处理后文件

vue.js 2 - 将单个文件组件的 html 片段提取到独立文件中