MVC 上传 下载

【上传】带进度条

view 

注:添加easyui的js文件

<script type="text/javascript">
function fileSelected() {
var file = document.getElementById(‘fileToUpload‘).files[0];
var fileName = file.name;
var file_typename = fileName.substring(fileName.lastIndexOf(‘.‘), fileName.length);

if (file_typename == ‘.doc‘ || file_typename == ‘.docx‘) {//这里限定上传文件文件类型
if (file) {

$("#uploadFile").show();
var fileSize = 0;
if (file.size > 1024 * 1024)
fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + ‘MB‘;
else
fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + ‘KB‘;
document.getElementById(‘fileName‘).innerHTML = ‘文件名: ‘ + file.name;
document.getElementById(‘fileSize‘).innerHTML = ‘大小: ‘ + fileSize;
document.getElementById(‘fileType‘).innerHTML = ‘类型: ‘ + file.type;
}
}
else {
$("#uploadFile").hide();
document.getElementById(‘fileName‘).innerHTML = "<span style=‘color:Red‘>错误提示:上传文件应该是.doc后缀而不应该是" + file_typename + ",请重新选择文件</span>"
document.getElementById(‘fileSize‘).innerHTML = "";
document.getElementById(‘fileType‘).innerHTML = "";

}
}

function uploadFile() {
var fd = new FormData();
fd.append("fileToUpload", document.getElementById(‘fileToUpload‘).files[0]);
var XMLHttp = null;
if (window.XMLHttpRequest) { //测试 window.XMLHttpRequest 对象是否可用
var xhr = new XMLHttpRequest(); //创建一个新对象
xhr.upload.addEventListener("progress", uploadProgress, false);
//监听事件
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "/Manage/Upload");
xhr.send(fd);
} else if (window.ActiveXObject) {
var xhr = new ActiveXObject("Microsoft.XMLHTTP");

xhr.upload.addEventListener("progress", uploadProgress, false);

xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "/Manage/Upload");
xhr.send(fd);
}
}

//上传进度
function uploadProgress(evt) {
if (evt.lengthComputable) {
var percentComplete = Math.round(evt.loaded * 100 / evt.total);
$(‘#progressNumber‘).progressbar(‘setValue‘, percentComplete);
}
else {
document.getElementById(‘progressNumber‘).innerHTML = ‘无法计算‘;
}
}

//上传成功响应
function uploadComplete(evt) {
var message = evt.target.responseText;
alert(message);
}

//上传失败
function uploadFailed(evt) {
alert("上传出错");
}

//取消上传
function uploadCanceled(evt) {
alert("上传已由用户或浏览器取消删除连接");
}
</script>

@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div>
<div class="row" style="padding: 10px">
<div>
论文题目:
<input class="easyui-validatebox easyui-textbox" data-options="required:true" name="Re_Title"
id="Re_Title" style="width: 250px" />
</div>
<label for="file">
论文内容:
</label>
<input type="file" name="fileToUpload" id="fileToUpload" multiple="multiple" onchange="fileSelected();" />
<a id="uploadFile" style="display: none" href="#" class="easyui-linkbutton" data-options="iconCls:‘icon-save‘"
onclick="uploadFile()">上传</a>
</div>
<div id="fileName" style="padding: 10px">
</div>
<div id="fileSize" style="padding: 10px">
</div>
<div id="fileType" style="padding: 10px">
</div>
<div id="progressNumber" class="easyui-progressbar" style="width: 400px; float: left;
margin-left: 10px;">
</div>
<div style="padding: 95px">
<input id="submit" type="submit" value="保存" class="bottom" />
<input id="reset" type="reset" value="取消" class="bottom" />
</div>
</div>
}

控制器 Controller.cs

/// <summary>
/// 上传文件
/// </summary>
/// <param name="fileToUpload"></param>
/// <returns></returns>
[HttpPost]
[ValidateInput(false)]
public string Upload(HttpPostedFileBase[] fileToUpload)
{
try
{
string FileUrl = string.Empty;
foreach (HttpPostedFileBase file in fileToUpload)
{
string path = System.IO.Path.Combine(Server.MapPath("~/FileUpLoad/Reviews"), System.IO.Path.GetFileName(file.FileName));
file.SaveAs(path);
FileUrl = path;
}
Session["URL"] = FileUrl;
return "上传成功";
}
catch
{
return "上传失败";
}

}

【下载】

view

<a href="/Manage/[email protected]_Content&[email protected]_Title">@Model.Re_Title</a>

controller.cs

#region ReviewDownFile
//本地路径转换成URL相对路径
private string urlconvertor(string imagesurl1)
{
string tmpRootDir = Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());//获取程序根目录
string imagesurl2 = imagesurl1.Replace(tmpRootDir, ""); //转换成相对路径
imagesurl2 = imagesurl2.Replace(@"\", @"/");
return imagesurl2;
}

//下载方法
[HttpGet]
public FileStreamResult DownFile(string filePath, string fileName)
{
var url = filePath;
var newurl = urlconvertor(url);
string absoluFilePath = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["AttachmentPath"] + newurl);
absoluFilePath = absoluFilePath.Replace("\\Manage", "");
return File(new FileStream(absoluFilePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName));
}
#endregion

时间: 2024-11-13 08:54:43

MVC 上传 下载的相关文章

spring mvc上传下载文件

前端jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName(

Asp.net实现MVC处理文件的上传下载功能实例教程

这篇文章主要介绍了Asp.net实现MVC处理文件的上传下载功能,比较全面而系统的对Asp.net MVC的文件上传下载功能进行了深入分析,有很好的借鉴价值,需要的朋友可以参考下 上传于下载功能是程序设计中非常常见的一个功能,在ASP.NET程序开发中有着非常广泛的应用.本文就以实例形式来实现这一功能. 一.概述 如果你仅仅只有Asp.net Web Forms背景转而学习Asp.net MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUploa

MVC实现文件上传下载

文件上传下载 1.准备环境     1.1导入开发包        mysql 驱动        c3p0  连接池    如果用mysql导入c3p0-0.9.2-pre1   mchange-commons-0.2 oracle的话要加入c3p0-oracle-thin-extras- 0.9.2-pre1        commons-dbutils        //提供对jdbc的操作封装来简化数据查询的记录读取操作        commons-io包            //i

javaweb-文件的上传下载

本文用到的jar包: 文件上传:commons-fileupload-1.2.1.jar; commons-io-1.4.jar; 本文需要掌握的知识:html+dom 1 文件的上传概述; 1.1 用户把本地的文件储存到服务器上,就是文件的上传; 1.2 实现文件的上传(目前而言要使用第三方jar包); 1.2.1 jspSmartupload; 适用范围:应用在jsp的模型一里(嵌入执行上传下载操作的JSP文件中)  ; 1.2.2 fileUpload; 来源:Apache commons

.Net Core 图片文件上传下载

当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. 一.开发环境 毋庸置疑,宇宙第一IDE VisualStudio 2017 二.项目结构 FilesController 文件上传下载控制器 PictureController 图片上传下载控制器 Return_Helper_DG 返回值帮助类 三.关键代码 1.首先我们来看Startup.cs

SpringMVC文件上传下载

在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/qixiaoyizhan/p/5819392.html 今天我们来讲讲spring mvc中的文件上传和下载的几种方法. 首先附上文件目录->我们需要配置的我做了记号-> 一.文件上传 首先为了方便后续的操作,以及精简代码,我们在Utils包下封装一个文件上传下载的帮助类: Files_Helper

asp.net mvc上传头像加剪裁功能

正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery.Jcrop 后台是asp.net mvc 4 核心的js调用代码是crop.js和helper文件夹下的ImgHandler.cs 效果图 前台代码 <link href="~/Content/fineuploader.css" rel="stylesheet" /> <link href=

文件上传下载样式 --- bootstrap

在平时工作中,文件上传下载功能属于不可或缺的一部分.bootstrap前端样式框架也使用的比较多,现在根据bootstrap强大的样式模板,自定义一种文件下载的样式. 后续会使用spring MVC框架实现文件上传的全部代码,敬请期待. 先看图片示例: 本示例包括下载样本文件样式和上传文件样式. 直接先上代码,最后讲解: <div class="form-group col-md-12 has-feedback" id="file"> <label

.NET企业级应用WebService上传下载文件

在建立好一个WebService后会有一个自带的 [WebMethod]//在待会写的所有方法中都要写这个,便于调试 public string HelloWorld() { return "Hello World"; } 现在可以试一下录入记录 [WebMethod] public UserInfo Login(string userName, string pwd) { if (userName == "admin" && pwd == &quo