Code Bye

C#如何传递文件内容给远程php服务

本意是想在html页面上实现上传EXCEL文件内容到服务器的数据库。客户端页面是php + JavaScript,服务器的服务文件也是.php后缀,在网上查了资料,说在客户端用js实现上传限制太多,所以额老师说让另外用C#写个程序,单独实现Excel文件上传功能,但是是把数据提交给远程的服务来执行往数据库中的存储过程。
所以问题来了。。。
EXcel中的文件内容已经能够读出,那怎么往远程服务传啊?,,看了一些代码,都类似于下面这种

yte[] data = Encoding.UTF8.GetBytes(values);
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(“http://localhost/wf/wfServices/jo_EImaintenance/SavePurchaseList.php”);
            myRequest.Method = “POST”;
            myRequest.ContentType = “application/x-www-form-urlencoded”;
            myRequest.ContentLength = data.Length;
            Stream myStream = myRequest.GetRequestStream();
            myStream.Write(data,0,data.Length);
            myStream.Close();
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            StreamReader myReader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
            string myResult = myReader.ReadToEnd();
            myReader.Close();

额这个“values”参数还是个二维数组,这些代码的意思是把参数转换成byte[]格式进行传输吗?
如果是的话,那我在远程PHP文件中怎么取出其中的各个参数呢?
         ps。我目前接触的后台服务处理方式大致都是下面这样的(额觉得主要就是这个values的定义了)
       

public static function savePurchaseList($db, $values)
    {
        //initialize params
        $params = array();
$sqlAdd="INSERT INTO list_purchase (inputTime, projectNo, belongComponent
,designNo,designName,unit
,designQuantity,techDemand,brandDemand
,vendor,leadTime,checkResult) VALUES";
if($values->resultCount>0)
{
for($i=0;$i<$values->resultCount;$i++)
{
$sqlAdd==$sqlAdd."("".now()
."("".$values->project_code
."","".$values->resultValue[i][0]
."","".$values->resultValue[i][1]
."","".$values->resultValue[i][2]
."","".$values->resultValue[i][3]
."","".$values->resultValue[i][4]
."","".$values->resultValue[i][5]
."","".$values->resultValue[i][6]
."","".$values->resultValue[i][7]
."","".$values->resultValue[i][8]
."","未检")";
if($i==$values->resultCount-1)
{
$sqlAdd=$sqlAdd.";";
}
else
{
$sqlAdd=$sqlAdd.",";
}
}
}			
       

如果还有别的方式,可以清楚明白的实现各个参数单独传输的话,麻烦告知一下。


10分
byte 是流, 传参要写在 url 里面 一起传过去   url=url?参数1&参数2

40分
传送文件应该这样写
new WebClient().UploadFile(url, filePathAndName);
一般来说,浏览器使用 multipart/form-data 协议,而不是 application/x-www-form-urlencoded。
你是没有看明白那些代码。
当你的页面需要支持客户端上传文件时,你的浏览器端的<form> 要声明为 multipart/form-data的,这样才能支持
<input type=”file” />标签用来上传文件。
这应该是学习 html/css 时学到的知识。
所以服务器端,会根据这个协议定义的格式来解析post 数据,才可能获得文件内容。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#如何传递文件内容给远程php服务