转:http://blog.sina.com.cn/s/blog_13331dce50102vq32.html

这是一个由php通过调用asp.net接口向asp.net服务器post上传文件及参数并根据返回值判断上传结果的问题开始的,当第一次接到这个问题时很快的想到了解决办法:

    
     
     1.
 先通过html页面的form表单将图片及参数上传到php页面,在php页面将接到的数据通过curl_post的传值方法传到作用域并得到返回值。
 
     
   
很快的,根据思路写好了代码,遗憾的是最终结果并不理想,图片每次都是提示上传失败。无奈之下只能换个方法。
     
  
     
      2.
将html页面中form表单的action写为接口地址,直接向接口中提交数据。
 
 
 令人欣慰的是这种方法可以用,但是如何获取到返回的数据呢,并且不跳转页面呢?我想到了iframe
 
 
     
   3.
在form表单中添加 target 属性 属性值为 iframe标签的name值
,使提交表单时在iframe中执行,而不跳转页面。同时通过 js
  $(document.getElementByIdx_x('b').contentWindow.document.body).html()
 获取到iframe中提交表单后得到的值 。
 
     
     
 但还是失败了 , 原因是我的php环境.net的环境是两个独立的域名无法完成。js由于 w3c
安全标准 无法跨域读取。期间我还想到了ajaxFileUpload方法 但结果一样 无法突破 js 的局限性
 。最后回到原点,开始查找curl不能上传的原因:
     
     
     
 4. 我首先在同一个域名下创建了a.php 和 b.php 两个文件
 在a.php中将参数和文件通过curl 传向b.php。 在b.php中 打印出
$_FILES的值 
string(263) "array(1) {
  ["image"]=>
  array(5) {
  ["name"]=>
  string(9) "aaaa.jpeg"
  ["type"]=>
  string(24) "application/octet-stream"
  ["tmp_name"]=>
  string(26)
"C:\WINDOWS\temp\php38B.tmp"
  ["error"]=>
  int(0)
  ["size"]=>
  int(421230)
  }
  }
["type"]=>
string(24) "application/octet-stream"   这是什么卵
 原来的 image/jpeg去哪了  查找资料终于找到解决方法
 在传向curl 的数组中的 image路径后面 加上
 type=type=image/png;就这样问题终于解决...........................

【转】php通过curl跨域向asp.net服务器上传文件及参数的更多相关文章

  1. asp.net 服务器 上传文件到 FTP服务器

    private string ftpServerIP = "服务器ip";//服务器ip private string ftpUserID = "ftp的用户名" ...

  2. 关于nutz跨服务器上传文件

    关于nutz跨服务器上传文件  发布于 578天前  作者 yong9664  770 次浏览  复制  上一个帖子  下一个帖子  标签: 无 是这样的,项目在一台服务器,文件要存储到另外一台服务器 ...

  3. ASP.NET Core 上传文件到共享文件夹

    参考资料:ASP.NET 上传文件到共享文件夹 创建共享文件夹参考资料:https://www.cnblogs.com/dansediao/p/5712657.html 一.配置上传文件相关参数并读取 ...

  4. idea 内置tomcat jersey 跨服务器 上传文件报400错误

    报错内容 com.sun.jersey.api.client.UniformInterfaceException: PUT http://.jpg returned a response status ...

  5. ASP.NET跨服务器上传文件的相关解决方案

    第一种:通过FTP来上传文件 首先,在另外一台服务器上设置好FTP服务,并创建好允许上传的用户和密码,然后,在ASP.NET里就可以直接将文件上传到这台 FTP 服务器上了.代码如下: <%@ ...

  6. asp.net 客户端上传文件全路径获取方法

    asp.net  获取客户端上传文件全路径方法: eg:F:\test\1.doc 基于浏览器安全问题,浏览器将屏蔽获取客户端文件全路径的方法,只能获取到文件的文件名,如果需要获取全路径则需要另想其他 ...

  7. ASP.NET MVC上传文件----uploadify的使用

    课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...

  8. asp.net 限制上传文件的大小与时间

    在web.Config文件中配置限制上传文件大小与时间的字符串是在<httpRuntime><httpRuntime/>节中完成. maxRequsetLength 属性:用于 ...

  9. ASP.NET MVC上传文件

    最近参考网络资料,学习了ASP.NET MVC如何上传文件.最基本的,没有用jQuery等技术. 1.定义Model public class TestModel    {        [Displ ...

随机推荐

  1. djangocms安装使用指南

    ubuntu 14.04 virtualenv venv --python=python3 . venv/bin/activate sudo apt-get upgradesudo apt-get i ...

  2. HDU4135(容斥原理)

    Co-prime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  3. MySQL insert插入

    使用INSERT语句插入新数据 语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (pression,...),…      INSERT [INTO ...

  4. 机器学习:多项式回归(scikit-learn中的多项式回归和 Pipeline)

    一.scikit-learn 中的多项式回归 1)实例过程 模拟数据 import numpy as np import matplotlib.pyplot as plt x = np.random. ...

  5. SpringBoot自动化配置之四:SpringBoot 之Starter(自动配置)、Command-line runners

    Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,stackoverflow上面已经有人概括了这个starter是什么东西,想看完整的回答戳这里 Starter ...

  6. java 多线程系列基础篇(十)之线程优先级和守护线程

    1. 线程优先级的介绍 java 中的线程优先级的范围是1-10,默认的优先级是5.“高优先级线程”会优先于“低优先级线程”执行. java 中有两种线程:用户线程和守护线程.可以通过isDaemon ...

  7. SpringMVC中使用forward和redirect进行转发和重定向以及重定向时如何传参详解

    转自:http://blog.51cto.com/983836259/1877188 2016-11-28 09:45:59   如题所示,在SpringMVC中可以使用forward和redirec ...

  8. HTTP、TCP、UDP、Socket关系详解

    TCP.UDP和HTTP关系是什么? 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.在传输层中有TCP ...

  9. wpf仿qq边缘自动停靠,支持多屏

    wpf完全模仿qq边缘自动隐藏功能,采用鼠标钩子获取鼠标当前状态,在通过当前鼠标的位置和点击状态来计算是否需要隐藏. 以下是实现的具体方法: 一.鼠标钩子实时获取当前鼠标的位置和点击状态 /// &l ...

  10. DR客户端一直连接服务器....(6)

    DR客户端一直连接服务器....(非未选择网卡)解决方法: 控制面板-->网络和 Internet-->网络连接,打开本地连接(以太网)属性,将IPV4协议前面的对勾去掉,重启DR 这样D ...