2014-04-21 67 views
1

slimframework我想发送从我的服务器上的文件到我的另一台服务器上的REST API,但由于某种原因它不使用得到我发送的数据..将文件发送到从服务器的NodeJS

REST API PHP苗条框架:

$app->post 
(
    '/api/upload', 
    function() use ($app) 
    { 
     $logs = '/home/logs'; 
     //error_log(print_r($_FILES, 1), 3, $logs . '/export16.log'); 
     try 
     { 
      $data = file_get_contents('php://input'); // EMPTY!!!! 
      error_log(print_r(count($data), 1), 3, $logs . '/export16.log'); 
     } 
     catch(Exception $e) 
     { 
      error_log(print_r($data, 1), 3, $logs . '/export16err.log'); 
     } 
    } 
); 

使用的NodeJS请求模块:

 fs.createReadStream('myfile.zip') 
    .pipe 
    (
     request.post 
     (
      UPLOAD_URL, 

      function (error, response, body) 
      { 
       //console.log(response); 
       if (!error && response.statusCode == 200) 
       { 
        //console.log(repons); 
       } 
      } 
     ) 
    ); 

也试图与此代码:如在该文档中使用解释表单数据模块

var r = request.post(UPLOAD_URL, function optionalCallback (err, httpResponse, body) { 
    if (err) { 
    return console.error('upload failed:', err); 
    } 
    console.log(httpResponse); 
    console.log('Upload successful! Server responded with:', body); 
}) 
var form = r.form(); 

form.append('my_file', fs.createReadStream('file.zip')); 

他们都没有工作,我得到的数据并不在我的PHP:输入, 我看到标题的内容类型:应用程序/压缩设置,但没有别的,somethign也许是缺少什么?

 _header: 'POST /api/upload HTTP/1.1\r\nhost: xyz.com\r\ncontent-type: a 
pplication/zip\r\nConnection: keep-alive\r\nTransfer-Encoding: chunked\r\n\r\n', 

任何想法我做错了什么?

回答

0

原来我不得不设置内容长度:)

相关问题