js跨域上传文件 iframe
2024-08-24 20:19:32
封装好的jq插件
(function () {
var iframe = '<iframe name="jqUploadIframe" style="display: none"></iframe>';
function getSearchObjct(window) {
var search;
try {
search = window.location.search.substr();
} catch (e) {
return null;
}
if (search == "") return "";
var keyValue = search.split("&");
var result = {};
for (var i = ; i < keyValue.length; i++) {
var onek = keyValue[i].split("=");
result[onek[]] = decodeURI(onek[]);
}
return result;
}
function getRootPath() {
var curWwwPath = window.document.location.href;
var pathName = window.document.location.pathname;
var pos = curWwwPath.indexOf(pathName);
var localhostPaht = curWwwPath.substring(, pos);
var projectName = pathName.substring(, pathName.substr().indexOf('/') + );
return (localhostPaht + projectName);
}
var methods = {
//跨域上传
crossDomain: function (op) {
this.attr("target", "jqUploadIframe");
var $iframe = $(iframe);
var val = "window.location.href='" + getRootPath() + "/jqUpload32495982348952?data=massage'";
this.append('<input type="hidden" class="jqUpload-localhostname" ' +
'name="uploadCall" value="' + val + '"/>');
$iframe[].onload = function () {
var searchData = getSearchObjct(this.contentWindow);
if (searchData == "") {
return;
} else if (searchData == null) {
op.error();
} else if (typeof searchData == "object") {
op.success(searchData.data);
}
$iframe.remove();
$(".jqUpload-localhostname").remove();
}
this.append($iframe);
$(this).submit();
}
}
$.fn.jqAjaxUpload = function (op) {
methods.crossDomain.apply(this, [op])
}
})()
前台调用
//需要提交的表单
var form = $("<form action='http://www.cnblogs.com/GoCircle/SaveUploadedFile' method='post' enctype='multipart/form-data'></form>");
form.append($("<input name='formFile' value='" + clearBase64 + "' />"));
form.append($("<input name='filename' value='" + fileName + "' />"));
form.append($("<input name='maintainID' value='" + maintainid + "' />"));
$('#iframeArea').append(form);//必须要追加到当前html页中 $(form).jqAjaxUpload({
isCrossDomain: true,
success: function (result) {
},
error: function () {
}
})
后台C# mvc
[AllowAnonymousAttribute]//允许所有请求
[HttpPost]
public ActionResult SaveUploadedFile(String formFile, String filename, String maintainID)
{
//这里必须为这种格式
return Content("<script>" + Request["uploadCall"].Replace("massage", isSavedSuccessfully) + "</script>");
}
最新文章
- 扫描线 + 线段树 : 求矩形面积的并 ---- hnu : 12884 Area Coverage
- 禁止浏览器直接访问php文件
- Maven学习总结(七)——eclipse中使用Maven创建Web项目
- Sharepoint 2013 列表使用JS Link
- c语言作业
- POJ 3241 Object Clustering(Manhattan MST)
- EffectiveJava笔记(第一部分)
- Linux下使用Magent+Memcached缓存服务器集群部署
- Hibernate 多表关联
- codeforces 679A Bear and Prime 100 交互
- jquery 实现页面拖拽并保存到cookie
- java设计模式---享元模式
- hdu 5611 Baby Ming and phone number(模拟)
- Struts 上下文
- LeetCode OJ 120. Triangle
- 九九乘法表python3写入文件中
- 新建web项目myeclipse基本设置
- Vue项目中如何使用Element-UI以及如何使用sass
- CSS图标文字不对齐
- Android Studio从2.3升级到3.1注意事项