如何使用另一个网站在一个网站上传文件


How to upload files on one website using another one

我有两个网站,一个是A,另一个是B我在A中有一个图像上传表单,允许用户上传文件。一个也有数据库记录路径的图像文件其实是要去B怎么办?。我拥有这两个网站。知道吗?。

您只需使用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); 

试试这个代码:

    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);

注意:如果您有php5.5或更高版本,建议使用CURLFile。

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

<?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);
?>

来源