1.将下载的文件的路径,放到form下的隐藏标签,设置value的值为下载文件的路径。
2.将存放下载文件路径的form进行submit()。
3.后台接收文件路径,解码,使用webutility.downloadfile()下载文件 。
js:
function fileNotExists() {
$.messager.alert("提示", "您下载的文件不存在!", "info");
}
前台:
<div style="display:none;">
<iframe name="downloadResponse"></iframe>
@using (Html.BeginForm("DownPhoto", "OnSite", FormMethod.Post, new { enctype = "multipart/form-data", id = "formdownload", name = "formdownload", target = "downloadResponse" }))
{
<input type="hidden" name="hidden_filepath" id="hidden_filepath" value="" />
}
@using (Html.BeginForm("DownAccFile", "OnSite", FormMethod.Post, new { enctype = "multipart/form-data", id = "AccDownload", name = "formdownload", target = "downloadResponse" }))
{
<input type="hidden" name="filepath" id="filepath" value="" />
}
</div>
后台:
public void DownAccFile()
{
string strTemplateFile = Request["filepath"];
if (String.IsNullOrEmpty(strTemplateFile))
{
return;
}
strTemplateFile = Server.UrlDecode(strTemplateFile);
FileInfo fi = new FileInfo(strTemplateFile);
if (fi.Exists)
{
string filename = Path.GetFileName(strTemplateFile);
WebUtility.DownloadFile(strTemplateFile, filename.Split('-')[1]);
}
else//window.parent.
Response.Write(string.Format("<script type='text/javascript'>window.parent.fileNotExists();</script>"));
}
上传:
上传文件必须使用form表单,不可使用ajax的异步表单提交(后台获取不到数据)。
<form id="formImport" method="post" enctype="multipart/form-data">
<input id="infosavecheck" type="file" name="AccFiles" />
<input type="button" name="btnupload" class="btn-2" value="上传" οnclick="uploadacc()" />
</form>
提交:提交可以直接使用form.submit()。也可以使用jquery-form的ajaxsubmit(),当然需要收入jquery-form的js文件。
下面是上传的js代码,使用的是ajaxsubmit()
var files = document.getElementById("infosavecheck").files;
if (files == null || files == undefined || files.length == 0) {
$.messager.alert("提示", "请先选择要上传的文件", "Info");
return;
}
for (var i = 0; i < files.length; i++) {
filename = files[i].name
var ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase() + ",";
if ("doc,docx,xls,xlsx,".indexOf(ext) < 0) {
$.messager.alert('提示', "附件格式不正确,只能是*.doc,*.docx,*.xls,*.xlsx格式中的一种!", 'info');
return;
}
}
$('#formImport').ajaxSubmit({
url: '@Url.Action("SubmitAccFile","OnSite")',
type: 'post',
success: function (msg) { //导入完成事件
var result = eval("(" + msg + ")");
if (result.res == "max") {
$.messager.alert("提示", "上传文件大于10M", "Info");
} else if (result.res == "ok") {
//$('#acccheckresult').val(result.path);
var array = result.path.split('|');
var str = '';
var _t = '';
for (var i = 0; i < array.length - 1; i++) {
_t = _t + '<div class=\'dvacc\'></div>';
}
for (var i = 0; i < array.length - 1; i++) {
var downurl = decodeURI(array[i]);
//此处是拼接的a标签,用于显示上传后的文件 。供用户下载
str = str + '<div class=\'divupacc\'><a href=\'javascript:void(0)\' name=\'filepath\' class=\'aupacc\' path=\'' + array[i] + '\' οnclick=\'uploadAccFile(this)\'>' + downurl.split('-')[1] + '</a><a href=\'javascript:void(0)\' style="float:right;color:#63BFE0;padding-right:50px;" class=\'delAccfile\' οnclick="removefile(this)">X</a></div>';
}
//$('#infosavecheckTitle .dvacc').remove();
$('#infosavecheckTitle').append(_t);
//$('#infosavecheckContent .divupacc').remove();
$('#infosavecheckContent').append(str);
$('#infosavecheck').val('');
$.messager.alert("提示", "上传成功", "Info");
//var
} else if (result.res == "importbreak") {
$.messager.alert("错误", "上传过程中发生错误", "error");
} else {
$.messager.alert("错误", "发生意外错误,请联系管理员", "error");
}
},
error: function () {
$.messager.alert("错误", "发生意外错误,请联系管理员", "error");
}
});
function uploadAccFile(obj) {
$('#filepath').val($(obj).attr('path'));
$('#AccDownload').submit();
}
2.将存放下载文件路径的form进行submit()。
3.后台接收文件路径,解码,使用webutility.downloadfile()下载文件 。
js:
function fileNotExists() {
$.messager.alert("提示", "您下载的文件不存在!", "info");
}
前台:
<div style="display:none;">
<iframe name="downloadResponse"></iframe>
@using (Html.BeginForm("DownPhoto", "OnSite", FormMethod.Post, new { enctype = "multipart/form-data", id = "formdownload", name = "formdownload", target = "downloadResponse" }))
{
<input type="hidden" name="hidden_filepath" id="hidden_filepath" value="" />
}
@using (Html.BeginForm("DownAccFile", "OnSite", FormMethod.Post, new { enctype = "multipart/form-data", id = "AccDownload", name = "formdownload", target = "downloadResponse" }))
{
<input type="hidden" name="filepath" id="filepath" value="" />
}
</div>
后台:
public void DownAccFile()
{
string strTemplateFile = Request["filepath"];
if (String.IsNullOrEmpty(strTemplateFile))
{
return;
}
strTemplateFile = Server.UrlDecode(strTemplateFile);
FileInfo fi = new FileInfo(strTemplateFile);
if (fi.Exists)
{
string filename = Path.GetFileName(strTemplateFile);
WebUtility.DownloadFile(strTemplateFile, filename.Split('-')[1]);
}
else//window.parent.
Response.Write(string.Format("<script type='text/javascript'>window.parent.fileNotExists();</script>"));
}
上传:
上传文件必须使用form表单,不可使用ajax的异步表单提交(后台获取不到数据)。
<form id="formImport" method="post" enctype="multipart/form-data">
<input id="infosavecheck" type="file" name="AccFiles" />
<input type="button" name="btnupload" class="btn-2" value="上传" οnclick="uploadacc()" />
</form>
提交:提交可以直接使用form.submit()。也可以使用jquery-form的ajaxsubmit(),当然需要收入jquery-form的js文件。
下面是上传的js代码,使用的是ajaxsubmit()
var files = document.getElementById("infosavecheck").files;
if (files == null || files == undefined || files.length == 0) {
$.messager.alert("提示", "请先选择要上传的文件", "Info");
return;
}
for (var i = 0; i < files.length; i++) {
filename = files[i].name
var ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase() + ",";
if ("doc,docx,xls,xlsx,".indexOf(ext) < 0) {
$.messager.alert('提示', "附件格式不正确,只能是*.doc,*.docx,*.xls,*.xlsx格式中的一种!", 'info');
return;
}
}
$('#formImport').ajaxSubmit({
url: '@Url.Action("SubmitAccFile","OnSite")',
type: 'post',
success: function (msg) { //导入完成事件
var result = eval("(" + msg + ")");
if (result.res == "max") {
$.messager.alert("提示", "上传文件大于10M", "Info");
} else if (result.res == "ok") {
//$('#acccheckresult').val(result.path);
var array = result.path.split('|');
var str = '';
var _t = '';
for (var i = 0; i < array.length - 1; i++) {
_t = _t + '<div class=\'dvacc\'></div>';
}
for (var i = 0; i < array.length - 1; i++) {
var downurl = decodeURI(array[i]);
//此处是拼接的a标签,用于显示上传后的文件 。供用户下载
str = str + '<div class=\'divupacc\'><a href=\'javascript:void(0)\' name=\'filepath\' class=\'aupacc\' path=\'' + array[i] + '\' οnclick=\'uploadAccFile(this)\'>' + downurl.split('-')[1] + '</a><a href=\'javascript:void(0)\' style="float:right;color:#63BFE0;padding-right:50px;" class=\'delAccfile\' οnclick="removefile(this)">X</a></div>';
}
//$('#infosavecheckTitle .dvacc').remove();
$('#infosavecheckTitle').append(_t);
//$('#infosavecheckContent .divupacc').remove();
$('#infosavecheckContent').append(str);
$('#infosavecheck').val('');
$.messager.alert("提示", "上传成功", "Info");
//var
} else if (result.res == "importbreak") {
$.messager.alert("错误", "上传过程中发生错误", "error");
} else {
$.messager.alert("错误", "发生意外错误,请联系管理员", "error");
}
},
error: function () {
$.messager.alert("错误", "发生意外错误,请联系管理员", "error");
}
});
function uploadAccFile(obj) {
$('#filepath').val($(obj).attr('path'));
$('#AccDownload').submit();
}