php - 从nodejs服务器发送文件到slimframework

标签 php node.js file-upload request

我想将文件从我的服务器发送到另一台服务器上的其余 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/

相关文章:

Javascript typeof 抛出引用错误

php - 上传到 PHP 脚本的 JPEG 文件损坏了——但并非总是如此

php - 如何使preg_match PHP函数匹配电子邮件地址格式的域?

php - 在 MySQL 查询和 PHP 方面需要帮助

node.js - Socket.io 发出回调不在服务器端触发?

javascript - 将 PDF 转换为 PNG Node.JS

php - Form::file:如何在验证错误后和/或更新时使用 Input::old 重新填充?

javascript - 将 Dropzone.js 与其他字段集成到现有的 HTML 表单中

php - 如何在 laravel 框架中创建三元关系

php - 命令不同步;你现在不能运行这个命令