質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2254閲覧

一度のクリックでサーバの異なる二つのサイトに画像アップロードしたい

ao_love

総合スコア441

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/09/09 04:25

編集2015/09/09 04:41

お世話になっております。

題名の通り、サイトAで会員登録をし、同時にサイトBにも登録をしたいです。
テキスト部分の登録はできるようになったのですが、画像の保存について試行錯誤しています。

サイトBの会員登録方法がワンクリックではなく
0. 登録画面を開く
0. 画像登録部の参照ボタンから画像を選択
0. 1枚登録するごとに画像下部の保存ボタンをクリックしてサーバ内に画像を保存(この時画像名は変更される)
0. その他の情報も入力して最終的な登録ボタンをクリック
という流れになっています。

サイトAの方は
参照→選択のみで保存は他情報と一括で行われています。

実験的に以下のようにコードを書いてみたのですが、画像以外の情報しか登録されませんでした。

php

1<?php 2 if($_POST){ 3 $file1 = array('userfile1'=>'@'.$_FILES['img1']['name'], 4 'UP_1'=>'1'); 5 $file2 = array('userfile2'=>'@'.$_FILES['img2']['name'], 6 'UP_2'=>'1'); 7 $member = array('member_name'=>$_POST['name'], 8 'member_mail'=>$_POST['mail'], 9 'member_kana'=>$_POST['kana'], 10 'member_userid'=>"12345678", 11 'member_passwd'=>"12345678", 12 'member_repass'=>"12345678", 13 'OK_1'=> "保存"); 14 15//postするデータの配列 16$params = array('login_mail' => "test@example.com" , 17 'login_passwd'=> "pass" , 18 'LOGIN' => "ログイン"); 19 20 $fp = fopen("tmp", "w"); 21 $ch = curl_init("http://www.example.com/login.php"); 22 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 23 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 24 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 25 curl_setopt($ch, CURLOPT_POST, TRUE); 26 curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 27 curl_setopt($ch, CURLOPT_WRITEHEADER, $fp); $ 28 $output = curl_exec($ch); 29 fclose($fp); curl_close($ch); 30 31 $ch = curl_init("http://example.com/register.php"); 32 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 33 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 34 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 35 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp"); 36 curl_setopt($ch, CURLOPT_POST, TRUE); 37 curl_setopt($ch, CURLOPT_POSTFIELDS, $file1); 38 $output = curl_exec($ch); 39 curl_close($ch); 40 41 $ch = curl_init("http://example.com/register.php"); 42 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 43 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 44 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 45 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp"); 46 curl_setopt($ch, CURLOPT_POST, TRUE); 47 curl_setopt($ch, CURLOPT_POSTFIELDS, $file2); 48 $output = curl_exec($ch); 49 curl_close($ch); 50 51 $ch = curl_init("http://example.com/register.php"); 52 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 53 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 54 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 55 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp"); 56 curl_setopt($ch, CURLOPT_POST, TRUE); 57 curl_setopt($ch, CURLOPT_POSTFIELDS, $member); 58 $output = curl_exec($ch); 59 curl_close($ch); 60 61 62}else{ 63echo <<< EOH 64<!DOCTYPE html> 65<html lang="ja"> 66<head> 67 <meta charset="UTF-8"> 68 <title>Document</title> 69</head> 70<body> 71 <form action="" method="post" enctype="multipart/form-data"> 72 <div>名前<input type="text" name="name"></div> 73 <div>メールアドレス<input type="text" name="mail"></div> 74 <div>画像1<input type="file" name="img1"></div> 75 <div>画像2<input type="file" name="img2"></div> 76 <input type="submit" name="send" value="送信"> 77 </form> 78</body> 79</html> 80EOH; 81} 82

もっと簡単な方法が!というようなことでも構いませんのでご教授いただけると幸いです。

サイトAの環境はPHP/5.2.4
サイトBの環境はPHP/5.3.27

になります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

'userfile1'=>'@'.$_FILES['img1']['name'],
でファイルの名前を指定していますが、
http://php.net/manual/ja/function.curl-setopt.php
にはフルパスで指定しろとあります。
アップロードされたファイルは
$_FILES['img1']['tmp_name']
の名前でサーバに保存されているので、こちらを指定する必要があるのではないでしょうか?

投稿2015/09/10 15:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ao_love

2015/09/11 02:12

ご回答ありがとうございます。 $_FILES['img1']['tmp_name'] でもやってみたのですが、うまくいきませんでした…。 もう少し試行錯誤してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問