zoukankan      html  css  js  c++  java
  • js跨域上传文件 iframe

    封装好的jq插件

      (function () {
          var iframe = '<iframe name="jqUploadIframe" style="display: none"></iframe>';
          function getSearchObjct(window) {
              var search;
              try {
                  search = window.location.search.substr(1);
              } catch (e) {
                  return null;
              }
              if (search == "") return "";
              var keyValue = search.split("&");
              var result = {};
              for (var i = 0; i < keyValue.length; i++) {
                  var onek = keyValue[i].split("=");
                  result[onek[0]] = decodeURI(onek[1]);
              }
              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(0, pos);
              var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
              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[0].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>"); }
  • 相关阅读:
    PHP基础函数、自定义函数以及数组
    php 中 isset 和empty 的区别
    mysql中索引的使用
    mysql 中的增改查删(CRUD)
    mysql语句应该注意的问题
    《zw版·Halcon-delphi系列原创教程》 水果自动分类脚本(机器学习、人工智能)
    《zw版·Halcon-delphi系列原创教程》 2d照片-3d逆向建模脚本
    《zw版·Halcon-delphi系列原创教程》简单的令人发指,只有10行代码的车牌识别脚本
    《zw版·Halcon-delphi系列原创教程》航母舰载机·视觉定位标志的识别代码
    zw版_zw中文增强版Halcon官方Delphi例程
  • 原文地址:https://www.cnblogs.com/GoCircle/p/7722335.html
Copyright © 2011-2022 走看看