首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从一个Laravel应用程序向第二个Laravel应用程序重新发送包含文件上传的POST请求

从一个Laravel应用程序向第二个Laravel应用程序重新发送包含文件上传的POST请求
EN

Stack Overflow用户
提问于 2014-06-30 01:23:35
回答 1查看 2.1K关注 0票数 1

我正在尝试将信息从一个laravel应用程序中的表单发布到另一个laravel应用程序中。文本没问题,问题是重新发送照片。

目前,我只是在routes.php文件中测试这一点,这样请求就不会发送到单独的应用程序,而是发送到自己。下面是我的代码:

代码语言:javascript
运行
复制
Route::get('testpost', function() {
    $html = '<form action="testpost" enctype="multipart/form-data" method="post"><input type="file" accept="image/*" value="Upload Photo" name="photo" id="photo"><input type="submit" value="Submit" name="submit" id="submit"></form>';
    return $html;
});
Route::post('testpost', function() {
    $guzzle = new \GuzzleHttp\Client();
    $request = $guzzle->createRequest('POST', 'https://test1.dev/secondpost', [
        'config' => [
            'curl' => [
                CURLOPT_SSL_VERIFYPEER => false,
            ]
        ]
    ]);
    $postBody = $request->getBody();
    $photo = Input::file('photo');
    $postBody->addFile(new \GuzzleHttp\Post\PostFile('photo', $photo));
    try {
        $response = $guzzle->send($request);
        echo $response;
    } catch(Exception $e) {
        echo $e->getMessage();
    }
});
Route::post('secondpost', function() {
    if(Input::hasFile('photo')) {
        var_dump(Input::file('photo'));
    } else {
        echo 'No photo';
    }
});

我得到的输出是:

代码语言:javascript
运行
复制
object(Symfony\Component\HttpFoundation\File\UploadedFile)[9]
  private 'test' => boolean false
  private 'originalName' => string 'photo' (length=5)
  private 'mimeType' => string 'text/plain' (length=10)
  private 'size' => int 26
  private 'error' => int 0

也就是说,图像实际上并没有被重新上传。有人知道怎么让它工作吗?

EN

回答 1

Stack Overflow用户

发布于 2014-06-30 04:39:50

我通过执行以下操作解决了这个问题:

代码语言:javascript
运行
复制
$photo = Input::file('photo');
$filename = $photo->getClientOriginalName();
$photo->move(storage_path(), $filename);

然后

代码语言:javascript
运行
复制
$request = $guzzle->createRequest();
$postBody = $request->getBody();
$postBody->addFile(new \GuzzleHttp\Post\PostFile('photo', fopen(storage_path() . '/' . $filename, 'r')));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24478471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档