我想从我的服务器向另一台服务器上的其他api发送一个文件,但由于某种原因它没有得到我发送的数据..
使用slim框架休息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中没有数据:输入, 我看到标题内容类型:设置了应用程序/ zip,但没有别的,可能缺少某些东西?
_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 :(得分:0)
原来我必须设置内容长度:)