特定Android设备XMLHttpRequest视频上传失败问题求助
特定Android设备MP4视频上传失败求助
测试人员发现,部分Android手机无法上传MP4视频文件,但iPhone及其他Android手机、Windows PC可正常上传该文件。已通过USB将失败设备连接至PC,使用Chrome开发者工具调试,未发现任何报错;修改php.ini配置后问题仍未解决,现寻求解决方案建议。
服务器配置
- CentOS Linux 7
- nginx 1.20.1
前端技术
- Javascript
后端技术
- PHP 7.3
- CakePHP 3.8
成功上传设备
- PC(Windows 10 Pro)
- Android 6.0.1
- Android 8.0.0
- iOS 16.2
上传失败设备
- Android 11
- Android 13
php.ini配置
memory_limit => 2G upload_max_filesize => 2G max_input_vars => 1000 max_execution_time => 0 ; post_max_size = 8M -- before changed post_max_size = 64M
Javascript上传代码
var xhr = new XMLHttpRequest(); var fd = new FormData(); fd.append('upfile', upfile); // upfile is uploading video file *1 xhr.onreadystatechange = function() { if( (xhr.status == 200 || xhr.status == 304) && xhr.response) { var data = xhr.response; console.log( 'COMPLETE! :' ); console.log( data ); } else { console.log( 'Failed. HttpStatus: '+xhr.status ); } }; xhr.open('POST', '/api/video/upload', true); xhr.responseType = 'json'; xhr.send(fd);
Javascript日志(上传文件信息)
# upfile lastModified: 1713564962045 lastModifiedDate: Sat Apr 20 2024 07:16:02 GMT+0900 (日本標準時) [[Prototype]]: Object name: "VID_2024-04-20-07-15-56-811.mp4" size: 10950674 type: "video/mp4" webkitRelativePath: ""
CakePHP 3.8 后端代码
//src\Controller\Api\VideosController.php public function upload(){ // 失败请求中$_FILES无数据 $this->appInfoLog("api.videos.upload", ["request"=>$this->request, "_FILES"=>$_FILES, ] ); // 文件上传处理逻辑... }
CakePHP 日志
上传成功时日志
2024-04-20 05:53:13 Info: {"request":{"trustProxy":true},"_FILES":{"upfile":{"name":"VID_20240419_155656.mp4","type":"video/mp4","tmp_name":"/tmp/phpAu0ege","error":0,"size":7330740}},"action":"api.videos.upload"}
上传失败时日志
2024-04-20 06:31:52 Info: {"request":{"trustProxy":true},"_FILES":[],"action":"api.videos.upload"}
补充:已再次通过USB连接失败设备至PC,使用Chrome开发者工具调试,仍未发现任何报错。
内容的提问来源于stack exchange,提问作者jmt
相关产品推荐
相关产品推荐

