2016-04-05 20 views
0

RSSBusでファイルを作成するためのコードを統合しています。接続します。私はPHPでこのJavaScriptを実行しているRSSBus Connectがファイルを作成できませんでした

<?php 
     $header  = base64_encode(USERNAME. ":" . USERPASS); 
     $content = base64_encode('Welcome'); 
    ?> 
    <div id="result"> 
    Content will loading here...  
    </div> 
    <script src="../../../js/jquery.min.js"></script> 
    <script type="text/javascript"> 

    $(document).ready(function(){ 

    var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 
    var surl = 'http://xxxxxxx/api.rsc/files?x-rssbus-uthtoken='+token+'&@jsonp'; 
     var postdata = { 
     PortId:  "xxxxxxxxx", 
     Folder:  "Send", 
     Filename: "testfile.xml", 
     Content: "<?php echo $content; ?>" 
    }; 

    $.ajax({ 
     type: "POST", 
     url: surl, 
     processData: false, 
     contentType: 'application/json',  
     data: JSON.stringify(postdata), 
     dataType: 'jsonp',   
     crossDomain: true, 

    }).done(function(data){ 

     var data = JSON.stringify(data); 
     $("#result").html("<pre>"+data+"</pre>"); 

    }).fail(function(data){ 

     console.log('fail'); 
    }); 

    }); 
    </script> 

: 以下は私のJavascriptのコードです。すべてのコードは完全に機能しますが、ファイルは「送信」フォルダに作成できませんでした。私も適切な応答を得ていますが、GETパラメータに変換され、 "405 Method Not Allowed"のようなエラーがすべての応答に含まれます。正常に応答が来たが、ファイルがフォルダに作成されていないとき。

解決策を早急に教えてください。

答えて

1

下記のコードで試してください。私はファイルを作成するのに成功しました。

$url = 'xxxxxxxxxxxxxxxx/api.rsc/files';    
$portid  = 'PORT'; 
$folder  = 'Send or Receiver Folder name'; 
$filename = 'mytest.xml'; 
$content = base64_encode('file content');  
$fields = array('PortId' => $portid, 'Filename' => $filename, 'Folder' => $folder, 'Content' => $content);  
$data_string = json_encode($fields);  
$header = array('Authorization: Basic '.base64_encode(AS2_USERNAME. ":" . AS2_USERPASS) 
       ,'Content-Type: application/json' 
       ,'Content-Length: '.strlen($data_string) 
       );  
$ch = curl_init();  

curl_setopt($ch, CURLOPT_URL, $url);  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POST, count($fields));  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
$result = curl_exec($ch); 
if(!curl_errno($ch)){ 
    $info = curl_getinfo($ch); 
    _printr($info); 
    echo "<br /><br />"; 
}else{ 
    echo 'Curl error: ' . curl_error($ch); 
}  
curl_close($ch); 
var_dump($result); 
+0

回答をいただきありがとうございます。はい、それは完璧に働いています。ありがとう。 – daxter

関連する問題