PHPでアップロードするファイルを指定する方法、コードを教えて下さい。
わたしは今Zoho CRM APIを利用して、新規顧客データの登録Webフォームを実装しようとしています。
写真のアップロードについてはuploadPhotoというメソッドを利用して実装します。
メソッドの詳細は https://www.zoho.com/crm/help/api/uploadphoto.html
※Zoho CRM内にあるフォーム作成機能やZoho Formsを利用してでもWebフォームは作成可能なのですが、一部細かい点で希望する仕様に仕上げることができなかったため、APIを使用して開発しようと考えています。
リファレンスを参考に仮に以下の最低限のWebフォームを作成しました。
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8</head> 9<body> 10 11 <form action="function.php"> 12 <input type="file" name="fname"> 13 <button>送信する</button> 14 </form> 15 16</body> 17</html>
php
1<?php 2$recordId="<record Id>"; 3$ch=curl_init(); 4curl_setopt($ch,CURLOPT_HEADER,0); 5curl_setopt($ch,CURLOPT_VERBOSE,0); 6curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 7curl_setopt($ch,CURLOPT_URL,"https://crm.zoho.com/crm/private/xml/Leads/uploadPhoto?authtoken=<my authtoken>scope=crmapi"); 8curl_setopt($ch,CURLOPT_POST,true); 9$post=array("id"=>$recordId,"content"=>$_FILE['fname']); 10curl_setopt($ch,CURLOPT_POSTFIELDS,$post); 11$response=curl_exec($ch); 12echo $response; 13?>
しかし、ファイルをアップロードしてもZohoのエラーメッセージである
4424Unable to process your request. Please verify whether you have provided proper file.
という文が出てしまいます。
おそらく、PHPコード文の9行目の"content"=>●●
の●●の書き方が違っていることによるエラーであると思いますので、わたしの書いた指定方法以外の適切なファイル指定の記述を教えていただきたいです。
画像のデータをパスで取得、もしくはテキスト化して取得するべきなのでしょうが、いろいろ試してみても同じエラーが出てしまいます。
リファレンスにはJavaのサンプルもありますが、Javaをまったく利用したことがないことなどからできればPHPで実装したいと考えています。
なにとぞよろしくお願いいたします。
【追記】
その他のinsertRecordsなどのZoho APIメソッドは問題なく利用できたため、IDやトークンコード、サービスなどのエラーではなく、画像指定方法次第でうまく動作するのではないかと考えております。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/03 09:06
2017/12/03 10:24
2017/12/03 12:10