我正在使用Symfony收集REST API,我不断收到空上传文件的例外情况。在每天约有5000名用户的应用程序中,它每天发生大约5-10次。
这是相关代码:
$receipt = $request->files->get('receipt');
if (!$receipt || !($receipt instanceof UploadedFile) || !$receipt->isValid()) {
throw new \Exception('No uploaded receipt image. Maybe the image is too large?');
}
我已将upload_max_filesize
和post_max_size
增加到非常高的值,但错误仍然存在。我注意到用户代理总是“奇怪”:
User-Agent: myappname/104 CFNetwork/808.0.2 Darwin/16.0.0
其中myappname
是我的移动应用程序的名称(仅限最后一部分,没有com.mycompany.myappname)。它可能是模拟器还是黑客攻击?
答案 0 :(得分:0)
如果upload_max_filesize大于post_max_size然后增加post_max_size那么它将大于upload_max_size,如果post_max_size的值大于memory_limit,那么增加memory_limit然后它将大于post_max_size。 如果仍然发生,那么如果您的前端和后端位于不同的域上,请尝试使用ip或域限制REST API 用户“Nelmio CORS”设置
# Nelmio CORS
nelmio_cors:
defaults:
allow_origin: ["%cors_allow_origin%"]
allow_methods: ["POST", "PUT", "GET", "DELETE", "OPTIONS"]
allow_headers: ["content-type", "authorization"]
max_age: 3600
paths:
'^/': ~
使用composer install nelmio / cors-bundle 或类似的。