/** * @return \think\response\Json */ public function upload() { $data = file_get_contents("php://input"); $fileType = ''; $this->getFileType($data, $fileType); if ($fileType == 'unknown'){ exit('文件类型识别失败'); } //拼接文件后缀:生成唯一文件名 $uniqueName = uniqid('app_', true) . $fileType; $saveDb = $this->uploadBinaryFile($data, $uniqueName); var_dump('$params'); var_dump($saveDb); // # 上传文件 // $instance = ALi::setConf($params['type']); // $instance->getBuilder(); // $result = $instance->uploadOss($fileName, $filePath); // // if (isset($result['info']['http_code']) && $result['info']['http_code'] == 200) { // return success(Status::SUCCESS, '操作成功', [ // "link" => $result['info']['url'] // ]); // } else { // return error(Status::ERROR, '传输异常 请重试!', null); // } } public function uploadBinaryFile($data, $uniqueName) { $relativePath = BASE_PATH . '/upload/'; $savePath = $relativePath . $uniqueName; //存放到数据表的路径 if (!is_dir($relativePath)) { //文件夹不存在,则创建;并给最大权限 777 mkdir($relativePath,0777,true); chmod($relativePath,0777); } file_put_contents($savePath, $data); //保存文件 return $savePath; } function getFileType($file, &$fileType) { /* 参考:PHP通过二进制流判断文件类型 https://blog.csdn.net/xwlljn/article/details/85134958 */ // 文件头标识 (2 bytes) $bin = substr($file,0, 2); $strInfo = unpack("C2chars", $bin); $typeCode = intval($strInfo['chars1'] . $strInfo['chars2']); /* 参考:利用文件头判断文件类型 https://blog.csdn.net/weixin_34267123/article/details/85506211 */ // 文件头对应的文件后缀关联数组 $fileToSuffix = [ 255216 => '.jpg', 7173 => '.gif', 6677 => '.bmp', 13780 => '.png', 208207 => '.xls', //注意:doc 文件会识别成 208207 8075 => '.zip', //注意:xlsx文件会识别成 8075 239187 => '.js', 6787 => '.swf', 7067 => '.txt', 7368 => '.mp3', 4838 => '.wma', 7784 => '.mid', 8297 => '.rar', 6063 => '.xml', ]; $fileType = empty($fileToSuffix[$typeCode]) ? 'unknown' : $fileToSuffix[$typeCode]; }
结果:
** 以上借鉴网友的代码
标签:文件,return,二进制,relativePath,fileType,tp6,result,接收,data From: https://www.cnblogs.com/G921123/p/17805190.html