1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * Created by PhpStorm.
- * User: sicilon_IT
- * Date: 2020/1/5
- * Time: 9:49
- */
- namespace app\api\controller;
- use think\Controller;
- use think\Log;
- use think\Request;
- class Fileoper extends Controller
- {
- private function filterfiletype($usefile = "file")
- {
- $filetype = $_FILES[$usefile]['type'];
- $types = [
- 'image',
- 'excel',
- ];
- $filetypeuse = "*" . $filetype;
- $iscanupload = false;
- foreach ($types as $key => $value) {
- if (strpos($filetypeuse, $value)) {
- $iscanupload = true;
- }
- }
- if (!$iscanupload) {
- log::info($_FILES);
- $msg = "file type error: " . $filetype;
- log::info($msg);
- $this->error($msg);
- }
- }
- /**
- * 指定文件位置上传
- *
- * @return void
- */
- public function uploadfilebydir()
- {
- //log::info($_FILES);
- $this->filterfiletype();
- // 获取表单上传文件
- $file = request()->file('file');
- if (empty($file)) {
- $this->error('请选择上传文件');
- }
- $defaultdir = 'Uploads' . '/';
- $dir = request()->param('dir') ? request()->param('dir') : request()->post('dir');
- $filename = request()->param('filename') ? request()->param('filename') : request()->post('filename');
- if ($dir) {
- if (!preg_match("/^[a-z0-9]{1,20}$/", $dir)) {
- $this->error('请求错误');
- }
- $dir = $defaultdir . $dir;
- } else {
- $dir = $defaultdir;
- }
- $domainpath = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $dir . '/';
- // 移动到框架应用根目录/public/uploads/ 目录下
- if (!empty($filename)) {
- $file = $file->move(ROOT_PATH . 'public' . '/' . $dir, $filename);
- } else {
- $file = $file->move(ROOT_PATH . 'public' . '/' . $dir);
- }
- //如果不清楚文件上传的具体键名,可以直接打印$info来查看
- //获取文件(文件名),$info->getFilename() ***********不同之处,笔记笔记哦
- //获取文件(日期/文件名),$info->getSaveName() **********不同之处,笔记笔记哦
- $filename = $file->getSaveName();
- $filename = str_replace(DS, "/", $filename);
- if ($filename) {
- //$this->success('文件上传成功!');
- $imageUrl = $domainpath . $filename;
- $r_upload['code'] = '200';
- $r_upload['resultData'] = $imageUrl;
- //不转义反斜杠
- return json_encode($r_upload, 320);
- } else {
- // 上传失败获取错误信息
- $this->error($file->getError());
- }
- }
- }
|