【发布时间】:2020-05-03 06:01:39
【问题描述】:
我正在使用带有 Passport 的 Laravel 6 创建 API,我正在尝试创建一个接收 2 个文件的端点,但是当我尝试使用 Vue 应用程序上传信息时收到此错误(它正在发送信息作为多部分/表单数据):
{
"message": "Invalid stream reference provided",
"exception": "Laminas\\Diactoros\\Exception\\InvalidArgumentException",
"file": "C:\\proyectos\\prixet-backend\\vendor\\laminas\\laminas-diactoros\\src\\Stream.php",
"line": 345,
"trace": [
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laminas\\laminas-diactoros\\src\\Stream.php",
"line": 60,
"function": "setStream",
"class": "Laminas\\Diactoros\\Stream",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laminas\\laminas-diactoros\\src\\StreamFactory.php",
"line": 41,
"function": "__construct",
"class": "Laminas\\Diactoros\\Stream",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\symfony\\psr-http-message-bridge\\Factory\\PsrHttpFactory.php",
"line": 111,
"function": "createStreamFromFile",
"class": "Laminas\\Diactoros\\StreamFactory",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\symfony\\psr-http-message-bridge\\Factory\\PsrHttpFactory.php",
"line": 93,
"function": "createUploadedFile",
"class": "Symfony\\Bridge\\PsrHttpMessage\\Factory\\PsrHttpFactory",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\symfony\\psr-http-message-bridge\\Factory\\PsrHttpFactory.php",
"line": 65,
"function": "getFiles",
"class": "Symfony\\Bridge\\PsrHttpMessage\\Factory\\PsrHttpFactory",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\passport\\src\\Guards\\TokenGuard.php",
"line": 181,
"function": "createRequest",
"class": "Symfony\\Bridge\\PsrHttpMessage\\Factory\\PsrHttpFactory",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\passport\\src\\Guards\\TokenGuard.php",
"line": 131,
"function": "getPsrRequestViaBearerToken",
"class": "Laravel\\Passport\\Guards\\TokenGuard",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\passport\\src\\Guards\\TokenGuard.php",
"line": 94,
"function": "authenticateViaBearerToken",
"class": "Laravel\\Passport\\Guards\\TokenGuard",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
"line": 283,
"function": "user",
"class": "Laravel\\Passport\\Guards\\TokenGuard",
"type": "->"
},
{
"function": "Laravel\\Passport\\{closure}",
"class": "Laravel\\Passport\\PassportServiceProvider",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
"line": 58,
"function": "call_user_func"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
"line": 60,
"function": "user",
"class": "Illuminate\\Auth\\RequestGuard",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
"line": 62,
"function": "check",
"class": "Illuminate\\Auth\\RequestGuard",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
"line": 41,
"function": "authenticate",
"class": "Illuminate\\Auth\\Middleware\\Authenticate",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Auth\\Middleware\\Authenticate",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 105,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
"line": 683,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
"line": 658,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
"line": 624,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
"line": 613,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
"line": 170,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 130,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\spatie\\laravel-cors\\src\\Cors.php",
"line": 28,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 171,
"function": "handle",
"class": "Spatie\\Cors\\Cors",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php",
"line": 63,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
"line": 57,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 171,
"function": "handle",
"class": "Fideloper\\Proxy\\TrustProxies",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 105,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
"line": 145,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
"line": 110,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\public\\index.php",
"line": 55,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "C:\\proyectos\\prixet-backend\\server.php",
"line": 21,
"function": "require_once"
}
]
}
当我尝试使用 Postman 时,我遇到了同样的错误,但我尝试使用失眠休息时,它会毫无错误地上传文件。
发生这种情况有什么原因吗?
【问题讨论】:
-
能否添加发送文件的Vue代码和上传文件的PHP代码?
标签: php file laravel-6 laravel-passport