Как загрузить файлы на один сайт, используя другой

0

У меня есть два веб-сайта: один - A а другой - B У меня есть форма для загрузки изображений в A которая позволяет пользователю загружать файлы. Также есть путь записи базы данных файла изображения, на самом деле должен идти в B Как это сделать?. Я владею обоими сайтами. Есть идеи?.

Теги:

3 ответа

2
Лучший ответ

Вы можете просто сделать это, используя FTP-FTP, см. Ниже code-

$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
    считают, что я загрузил файл из формы, но вместо источника, что я должен получить из формы?
  • 0
    источником будет $ _FILES ["your_file_name_given_in_form"] ["tmp_name"];
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);

?>

Источник

  • 0
    В этом не требуется аутентификация с другого сервера?
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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню