在CentOS上使用ThinkPHP进行文件上传,你需要遵循以下步骤:
首先确保已经安装了CentOS操作系统,并且已经安装了Web服务器(如Apache或Nginx)和PHP。
安装ThinkPHP框架。你可以使用Composer来安装,运行以下命令:
composer create-project topthink/think your_project_name
将your_project_name替换为你的项目名称。
UploadController.php的文件,并添加以下代码:<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
class UploadController extends Controller
{
public function index(Request $request)
{
if ($request->isPost()) {
// 获取上传的文件对象
$file = $request->file('file');
// 移动到框架应用根目录/uploads/ 目录下
$info = $file->move(ROOT_PATH . 'public' . EXT . '/uploads');
if ($info) {
// 成功上传后 获取上传信息
return json(['message' => '上传成功', 'path' => $info->getSaveName()]);
} else {
// 上传失败获取错误信息
return json(['message' => '上传失败', 'error' => $file->getError()]);
}
}
// 显示上传表单
return $this->fetch();
}
}
application/index/view目录下创建一个名为upload.html的文件,添加以下代码:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="/index/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" required>
<button type="submit">上传</button>
</form>
</body>
</html>
httpd.conf或apache2.conf中的AllowOverride设置为All,并在项目目录中创建或修改.htaccess文件,添加以下内容:<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,PT,L]
</IfModule>
对于Nginx,在nginx.conf文件中的server块中添加以下内容:
location /
{
try_files $uri $uri/ /index.php?$query_string;
}
php.ini文件,找到以下设置并进行调整:file_uploads = On
upload_max_filesize = 10M
post_max_size = 10M
将upload_max_filesize和post_max_size设置为所需的最大文件大小。
对于Apache:
sudo systemctl restart httpd
对于Nginx:
sudo systemctl restart nginx
现在,你应该可以在CentOS上使用ThinkPHP进行文件上传了。访问http://your_server_ip/upload.html,尝试上传一个文件,如果一切正常,文件将被上传到public/uploads目录。