
如果您需要跨域将内容上载到另一个域名并需要获取返回值,则最好使用Asp.Net作为代理. 如果客户直接将其提交给iframeaspnet 表单上传文件,则无法使用javascript获取跨域. 目前,您需要制作一个动态页面作为网站上的代理,并将表单提交到动态页面. 动态页面负责使用WebClient或HttpWebRequest将表单数据上传到远程服务器. 由于该操作是在服务器端执行的,因此不会出现跨域问题.
WebClient上传示例代码,其中的文本信息仅包含键值对:
复制代码,代码如下:
string uriString =“ http: //localhost/login.aspx”;
//创建一个新的WebClient实例.
WebClient myWebClient = new WebClient();

string postData =“ Username = admin&Password = admin”;
//请注意此拼写字符串的ContentType
myWebClient.Headers.Add(“ Content-Type”,“ application / x-www-form-urlencoded”);
//转换为二进制数组
byte [] byteArray = Encoding.ASCII.GetBytes(postData);
//上传数据并获取返回的二进制数据.

byte [] responseArray = myWebClient.UploadData(uriString,“ POST”,byteArray);
WebClient上传仅包含文件的示例代码:
复制代码,代码如下:
String uriString =“ http: //localhost/uploadFile.aspx”;
//创建一个新的WebClient实例.
WebClient myWebClient = new WebClient();

string fileName = @“ C: /upload.txt”;
//直接上传并获取返回的二进制数据.
byte [] responseArray = myWebClient.UploadFile(uriStringaspnet 表单上传文件,“ POST”,fileName);
对于同时包含文件和文本键值对信息的示例代码,需要构造表单提交的内容. 对于学习asp的学生,以下表单提交内容不会陌生
复制代码,代码如下:
----------------------------- 7d429871607fe

Content-Disposition: 表单数据; filename =“ G: /homepage.txt”
内容类型: 文本/纯文本
Script House: //www.jb51.net
----------------------------- 7d429871607fe
Content-Disposition: 表单数据;
默认文件名
----------------------------- 7d429871607fe-
只要您过去将这样的byte []数据放入数据中,就可以达到相同的效果. 但是,必须注意,对于这种类型的文件上传,ContentType是不同的,例如,上述类型,ContentType是“ multipart / form-data; boundary = ------------ --------------- 7d429871607fe”. 使用ContentType,我们可以知道边界(即上面的“ --------------------------- 7d429871607fe”),知道边界后,我们可以构造所需的byte []数据. 最后,不要忘记将我们构造的ContentType传递给WebClient(例如: webClient.Headers.Add(“ Content-Type”,ContentType);)通过WebClient.UploadData方法上传文件数据.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-270221-1.html
对于进入12海里的外国舰船也不是立马就给予击沉和撞击
或许会误射