PHP-不使用curl将文件上载到另一台服务器

PHP-不使用curl将文件上载到另一台服务器,php,file-upload,curl,Php,File Upload,Curl,我有一个问题,我可以上传文件到另一个服务器没有卷曲。。 因为不是每个服务器都有CURL。。。 谢谢…可以使用: 然而,ftp域将为您提供ftp文件的位置以及用户名和密码。是的,可以将纯PHP fopen与stream_context_create一起使用。以下示例来自在线PHP手册(): 接收服务器是否有cURL并不重要。重要的是,执行服务器拥有它。回答您的实际问题:技术上是的,具体取决于远程服务器支持的文件传输模式。它有FTP吗?(例如)是的,它有ftp。。。你能回答我的问题吗。。。 defi

我有一个问题,我可以上传文件到另一个服务器没有卷曲。。 因为不是每个服务器都有CURL。。。 谢谢…

可以使用:


然而,ftp域将为您提供ftp文件的位置以及用户名和密码。

是的,可以将纯PHP fopen与stream_context_create一起使用。以下示例来自在线PHP手册():


接收服务器是否有cURL并不重要。重要的是,执行服务器拥有它。回答您的实际问题:技术上是的,具体取决于远程服务器支持的文件传输模式。它有FTP吗?(例如)是的,它有ftp。。。你能回答我的问题吗。。。
define("LOCAL_FILE","PATH_TO_LOCAL_FILE");
define("FTP_ADDRESS","ftp.domain.com");
define("FTP_FILE","PATH_TO_REMOTE_FILE");
define("FTP_USERNAME","USERNAME");
define("FTP_PASSWORD","PASWORD");

$conn = ftp_connect(FTP_ADDRESS);
$login = ftp_login($conn, FTP_USERNAME, FTP_PASSWORD);
ftp_put($conn, FTP_FILE, LOCAL_FILE, FTP_ASCII);
ftp_close($conn);
function do_post_request($url, $postdata, $files = null) 
{ 
    $data = ""; 
    $boundary = "---------------------".substr(md5(rand(0,32000)), 0, 10); 

    //Collect Postdata 
    foreach($postdata as $key => $val) 
    { 
        $data .= "--$boundary\n"; 
        $data .= "Content-Disposition: form-data; name=\"".$key."\"\n\n".$val."\n"; 
    } 

    $data .= "--$boundary\n"; 

    //Collect Filedata 
    foreach($files as $key => $file) 
    { 
        $fileContents = file_get_contents($file['tmp_name']); 

        $data .= "Content-Disposition: form-data; name=\"{$key}\"; filename=\"{$file['name']}\"\n"; 
        $data .= "Content-Type: image/jpeg\n"; 
        $data .= "Content-Transfer-Encoding: binary\n\n"; 
        $data .= $fileContents."\n"; 
        $data .= "--$boundary--\n"; 
    } 

    $params = array('http' => array( 
           'method' => 'POST', 
           'header' => 'Content-Type: multipart/form-data; boundary='.$boundary, 
           'content' => $data 
        )); 

   $ctx = stream_context_create($params); 
   $fp = fopen($url, 'rb', false, $ctx); 

   if (!$fp) { 
      throw new Exception("Problem with $url, $php_errormsg"); 
   } 

   $response = @stream_get_contents($fp); 
   if ($response === false) { 
      throw new Exception("Problem reading data from $url, $php_errormsg"); 
   } 
   return $response; 
} 

//set data (in this example from post) 

//sample data 
$postdata = array( 
    'name' => $_POST['name'], 
    'age' => $_POST['age'], 
    'sex' => $_POST['sex'] 
); 

//sample image 
$files['image'] = $_FILES['image']; 

do_post_request("http://example.com", $postdata, $files);