不错. 这个和PHP自带的还是有区别的~~~~~
PHP自带的一般是用来处理客户上传的文件
而这个是把PHP所在服务器上的文件发送给另一个server
不过Boundary为何不直接写成属性而用一个 createBoundary()来创建呢?这是我以前写的一段利用SOCKET上传的代码~~不过没做成类~~socket.php
<?php
$host='127.0.0.1';//主机
$port=80;//端口
$path='/yb/work/upload.php';//处理上传文件的PHP文件.必须是相对根目录的路径.
$filename= "1.jpg";//文件名
$content_type = "image/jpeg";//文件类型 Content-type
$div="--------yubeinet.com---";//分隔符
$content=implode("",file($filename));
$data.="--$div
Content-Disposition: form-data; name=\"file".($i+1)."\"; filename=\"$filename\"
Content-Type: $content_type
$content
--$div
--\r\n\r\n";
$data_len=strlen($data);//数据大小
$data="POST $path HTTP/1.0
Content-Type: multipart/form-data; boundary=$div
Content-Length: ".$data_len."\r\n\r\n".$data;
$h=fsockopen($host, $port);//打开端口
fputs($h,$data);//发送数据
while (!feof($h)){ $res.= fread($h,32000);}
echo $res;//输出结果
fclose($h);
?>

解决方案 »

  1.   

    to surfchen
    主要是想每次都不同啊,是根据time() md5后取子串的,
    原来我以为这个东西是有说头的,现在看来用什么都行了.
      

  2.   

    to syre(神仙) 
    我的项目需要是这样的,
    由于我们代理的一个产品需要向服务器上传文件,而上传的URL是需要身份验证的,
    一般来说是客户将文件传给我们,再由我们传到服务器上,
    现在想让客户自己传,但是还不能给他用户名和密码,所以只好经过二次上传了,
      

  3.   

    练练手还可以,实用价值不大。
    完全可以通过file_get_contents函数在服务器端读取
      

  4.   

    to xuzuning(唠叨) :
    file_get_contents似乎跟这个不一样吧??
    file_get_contents是读取文件内容~~而现在这个是通过以PHP脚本所在的服务器作为客户端上传到另外的server
      

  5.   

    我也在想怎么用file_get_contents实现这个功能,唠叨能否给段简单的示例?
      

  6.   

    根据你的补充描述:
    “我的项目需要是这样的,
    由于我们代理的一个产品需要向服务器上传文件,而上传的URL是需要身份验证的,
    一般来说是客户将文件传给我们,再由我们传到服务器上,
    现在想让客户自己传,但是还不能给他用户名和密码,所以只好经过二次上传了”
    可知:接受上传文件的服务器还是在你的控制之中的,而客户是通过你上传的
    因此只要你在接收到上传文件后调用服务器上的程序就可以了。服务器上的程序为
    $buf = file_get_contents("你的url"."用户上传给你的文件");
    然后就是保存$buf到文件或数据库的操作如果你使用php5那么就已经支持http协议的远程写了你的程序适合向别人的允许提交文件的网站上传文件,但若对方表单有验证码的话,也就无能为力了
      

  7.   

    不是这样的,服务器我们不能控制,服务器上有一个上传文件的表单,我们是通过这个表单上传的,
    而且这个表单是需要HTTP认证的,
    我做的工作是用PHP程序模拟了这个表单上传的动作,同时附上HTTP认证功能。