2014-11-06 134 views
0

我有两个网站之一是A另一个是B我有一个图像上传表单A它允许用户上传files.A也有一个数据库的图像记录路径文件实际上已经去了B如何做到这一点?我拥有这两个网站。任何想法?。如何使用另一个网站上传一个网站上的文件

+1

可以为此使用卷曲。 – Shubanker 2014-11-06 06:32:08

+0

你有关于这方面的文件吗? – arunwebber 2014-11-06 06:33:47

回答

2

你可以简单地使用PHP FTP 做到这一点见下文代码 -

$connection = ftp_connect($server); 

$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass); 

    if (!$connection || !$login) { die('Connection attempt failed!'); } 

$upload = ftp_put($connection, $dest, $source, $mode); 

    if (!$upload) { echo 'FTP upload failed!'; } 

ftp_close($connection); 
+0

考虑我从表单上传了一个文件,但是在源代码中我必须从表单中获得文件? – arunwebber 2014-11-07 14:05:25

+0

source将为$ _FILES [“your_file_name_given_in_form”] [“tmp_name”]; – 2014-11-08 05:21:17

0

试试这个代码:

if (version_compare(phpversion(), '5.5.0', '>=')) 
    { 
     $postData['file'] = new CURLFile($fileData['tmp_name'], $fileData['type'] ,$fileData['name']); 
    } 
    else 
    { 
     $postData['file'] = '@'.$fileData['tmp_name']; 
     $postData['file_info']['name'] = $fileData['name']; 
    } 

    $url = 'http://your-site.com/'; 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POST,1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 

    $output= curl_exec($ch); 

    if ($output === false) 
    { 
     //handle the error 
    } 

    curl_close ($ch); 

注意:如果你有PHP 5.5及更高版本,建议使用CURLFile。

0

以下代码可能会有所帮助。

<?php 
$target="http://youraddress.tld/example/upload.php"; 

# http://php.net/manual/en/curlfile.construct.php 

// Create a CURLFile object/procedural method 
$cfile = curl_file_create('resource/test.png','image/png','testpic'); // try adding 

// Create a CURLFile object/oop method 
#$cfile = new CURLFile('resource/test.png','image/png','testpic'); // uncomment and use if the upper procedural method is not working. 

// Assign POST data 
$imgdata = array('myimage' => $cfile); 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $target); 
curl_setopt($curl, CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15'); 
curl_setopt($curl, CURLOPT_HTTPHEADER,array('User-Agent: Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15','Referer: http://someaddress.tld','Content-Type: multipart/form-data')); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, true); // enable posting 
curl_setopt($curl, CURLOPT_POSTFIELDS, $imgdata); // post images 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // if any redirection after upload 
$r = curl_exec($curl); 
curl_close($curl); 

?> 

Source

+0

在这不需要认证从另一台服务器? – arunwebber 2016-01-16 05:39:25

相关问题