上传文件

开发工具与关键技术: VisualStudio 2015 mvc

作者:杨泽平

撰写时间:2019、6、1

文件上传在mvc项目里也是常见的,要实现文件上传,方法是比较复杂的,而且代码量比较大,方法虽然复杂但要实现这一功能还是得写。

首先视图方法,我们上传需要使用XMLHttpRequest对象,先new一个对象将第一个文件放入对象,然后new一个XMLHttpRequest,XMLHttpRequest的解释如下:

XMLHttpRequest对象提供了对
HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。

XMLHttpRequest可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。

上传用post提交方法然后转到控制器方法,控制器方法,

//获取session中的文件表

List
sessionFiles = new List();

if (Session[“sessionFiles”] != null)

{

sessionFiles =

Session[“sessionFiles”] as List;

}

//检查目录是否存在,不存在就创建

if (!Directory.Exists(Server.MapPath("~/Document/Temp/")))

{

Directory.CreateDirectory(Server.MapPath("~/Document/Temp/"));

}

//文件类型

string fileExtension = Path.GetExtension(attachmentFile.FileName);

//不包含文件扩展名的名称

string fileName = Path.GetFileNameWithoutExtension(attachmentFile.FileName);

//原始文件名称

string oldFileName =
attachmentFile.FileName;

//文件名称,添加时间字符串,避免文件名称相同

fileName = fileName + DateTime.Now.ToString(“yyyy-MM-dd-HH-mm-ss-ffff”) +
fileExtension;

//保存文件的路径

string filePath = Server.MapPath("~/Document/Temp/") +
fileName;

//保存文件

attachmentFile.SaveAs(filePath);

然后就是判断文件类型,这个就不说了,接着就是

FilesVo filesVo = new FilesVo

    {

FileTypeID = fileTypeId,

FileTypeName = fileTypeName,

       FileName

= fileName,

       FileGuid

= Guid.NewGuid().ToString(“N”),

       Files = "<a

href="/SystemManagement/IssuanceNotice/DownloadAttachment?fileName=" + fileName

  • “”
    target="_blank">" + oldFileName + “”

       };
    

然后更新session: sessionFiles.Add(filesVo);

Session[“sessionFiles”] = sessionFiles;

最后return返回,这里完成后,我们在返回视图,在视图里注册监听事件,发送成功事件和上传失败事件,还有上传进度,

发送成功事件:

xhr.onload = function (event) {

layer.close(layerIndex);//关闭加载层

    var strText

= event.currentTarget.responseText;

           if

(strText == “true”) {

            //刷新附件列表

tabFiles.reload({

                        url: "/SystemManagement/IssuanceNotice/SelectSessionFiles",

});

              layer.alert("上传成功!", { icon: 1 });

           } else {

layer.alert(strText, { icon: 2 });

               }

};这里还需要查询上传的附件列表信息,查询就不多说了。

最后效果,点击上传按钮,打开选择文件窗体,双击选择文件上传,然后提示上传成功或失败信息,在点击确定就可以了。

效果如图所示:

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值