我想将文件从我的服务器发送到另一台服务器上的其余 api,但由于某种原因它没有获取我发送的数据..
使用 slim 框架的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:input 中没有得到数据, 我看到 header 内容类型:application/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',
知道我做错了什么吗?
最佳答案
结果我必须设置内容长度:)
关于php - 从nodejs服务器发送文件到slimframework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23199130/