·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

后台开发之showsetting() file类型怎么获取上传后的地址

322 2
发表于 2023-3-11 07:42:52 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
后台开发之showsetting() file类型怎么获取上传后的地址 后台,后台开发,开发,file,类型

POST有信息,但是debug($_files)啥也没有是空数组
后台开发之showsetting() file类型怎么获取上传后的地址 后台,后台开发,开发,file,类型

代码如下:
后台开发之showsetting() file类型怎么获取上传后的地址 后台,后台开发,开发,file,类型

后台页面:
后台开发之showsetting() file类型怎么获取上传后的地址 后台,后台开发,开发,file,类型

如何上传后获取文件在服务器中上传的地址,我要保存路径到数据库,谢谢da

我要说一句 收起回复

评论2

独家记忆Lv.8 发表于 2023-3-11 07:43:03 | 查看全部
enctype没加
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 04:42:44 | 查看全部
在Discuz后台开发中,`showsetting()` 函数用于生成后台设置项的表单元素。对于文件上传类型(`file`),你需要通过PHP的`$_FILES`全局数组来获取上传的文件信息。如果你发现`$_FILES`是空数组,可能是因为表单的`enctype`属性没有正确设置,或者文件上传的大小超过了PHP配置的限制。

### 1. 确保表单的`enctype`属性正确
在后台页面中,确保你的表单设置了`enctype="multipart/form-data"`,这样才能正确上传文件。

  1. <form method="post" action="your_action.php" enctype="multipart/form-data">
  2.     <!-- 其他表单元素 -->
  3.     <input type="file" name="your_file_input_name">
  4.     <input type="submit" value="上传">
  5. </form>
复制代码


### 2. 检查PHP配置
确保PHP的`upload_max_filesize`和`post_max_size`配置足够大,以允许上传你需要的文件大小。你可以在`php.ini`中修改这些配置,或者在代码中使用`ini_set()`函数临时修改。

  1. ini_set('upload_max_filesize', '10M');
  2. ini_set('post_max_size', '10M');
复制代码


### 3. 获取上传文件并保存路径
在后台处理上传文件的PHP脚本中,你可以通过`$_FILES`数组获取上传的文件信息,并将文件保存到服务器上。然后,你可以将文件路径保存到数据库中。

  1. if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_FILES['your_file_input_name']['name'])) {
  2.     $uploadDir = 'uploads/'; // 上传目录
  3.     $uploadFile = $uploadDir . basename($_FILES['your_file_input_name']['name']);

  4.     // 检查文件是否已经存在
  5.     if (file_exists($uploadFile)) {
  6.         echo "文件已存在。";
  7.     } else {
  8.         // 尝试移动上传的文件
  9.         if (move_uploaded_file($_FILES['your_file_input_name']['tmp_name'], $uploadFile)) {
  10.             echo "文件上传成功。";

  11.             // 将文件路径保存到数据库
  12.             $filePath = $uploadFile;
  13.             // 这里写你的数据库保存逻辑
  14.             // 例如:DB::insert('your_table', ['file_path' => $filePath]);

  15.         } else {
  16.             echo "文件上传失败。";
  17.         }
  18.     }
  19. }
复制代码


### 4. 使用`showsetting()`生成文件上传表单
在Discuz后台页面中,你可以使用`showsetting()`函数生成文件上传的表单元素。

  1. showsetting('文件上传', 'your_file_input_name', '', 'file');
复制代码


### 5. 处理上传的文件
在后台处理逻辑中,你可以通过`$_FILES`获取上传的文件,并将其保存到服务器上。

  1. if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_FILES['your_file_input_name']['name'])) {
  2.     $uploadDir = 'uploads/'; // 上传目录
  3.     $uploadFile = $uploadDir . basename($_FILES['your_file_input_name']['name']);

  4.     if (move_uploaded_file($_FILES['your_file_input_name']['tmp_name'], $uploadFile)) {
  5.         // 文件上传成功,保存路径到数据库
  6.         $filePath = $uploadFile;
  7.         // 这里写你的数据库保存逻辑
  8.     } else {
  9.         // 文件上传失败
  10.     }
  11. }
复制代码


### 总结
1. 确保表单的`enctype`属性设置为`multipart/form-data`。
2. 检查PHP的文件上传配置,确保允许上传的文件大小足够。
3. 使用`$_FILES`数组获取上传的文件信息,并将文件保存到服务器上。
4. 将文件路径保存到数据库中。

如果你按照以上步骤操作,应该能够成功上传文件并获取文件路径。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.224.30.216,GMT+8, 2025-4-8 20:48 , Processed in 0.683724 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表