当前位置:论坛首页 > Linux面板 > 求助

【求助】PHP7.1 $_FILES输入为空如何解决?

发表在 Linux面板2021-8-26 14:16 [复制链接] 6 1361

本帖最后由 韦卿 于 2021-8-26 16:14 编辑

PHP7.1,上传图片的时候打印$_FILES为空,图片大小18kb。上传了一个单图片文件,宝塔后台配置中,上传文件大小限制都是50MB

   ;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 50M

; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20



使用道具 举报 只看该作者 回复
发表于 2021-8-26 14:24:04 | 显示全部楼层
我怎么感觉是你代码写错了呢
使用道具 举报 回复 支持 反对
发表于 2021-8-26 14:29:50 | 显示全部楼层
宝塔技术-小强 发表于 2021-8-26 14:24
我怎么感觉是你代码写错了呢

前台用 ApiPost 做的提交


  1. <form action="/index.php/common/upload" enctype="multipart/form-data" method="post">
  2.   <input type="file" name="file"/>
  3.   <input type="submit" value="upload"/>
  4. </form>
复制代码


  1. public function upload(){
  2.         $file = request()->file('file');
  3.         $savename = \think\facade\Filesystem::disk('public')->putFile( 'topic', $file);
  4.         $this->doSetSuccess('/storage/'.$savename);
  5. }
复制代码
使用道具 举报 回复 支持 反对
发表于 2021-8-26 16:13:15 | 显示全部楼层
经测试,如果在提交的Header中Content-Type属性中,后边多了; boundary=----WebKitFormBoundaryyuf4BD1UEJR3SkSL,导致在php后端无法接收到数据,如果在ApiPost调试工具中将Content-Type修改为 Content-Type: multipart/form-data 后即可正常接收数据,boundary参数是在提交的时候自动附加到后边的,这个问题要如何解决?

以下这样可以接收到:
Content-Type: multipart/form-data

以下格式后端无法接收到数据
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryyuf4BD1UEJR3SkSL


  1. Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryyuf4BD1UEJR3SkSL
  2. Referer: http://localhost:8080/
  3. User-Agent: Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36
复制代码
使用道具 举报 回复 支持 反对
发表于 2021-8-27 14:28:36 | 显示全部楼层
这个不属于面板的问题。自行处理了。
使用道具 举报 回复 支持 反对
发表于 2021-8-27 14:28:59 | 显示全部楼层
换个文件上传的代码就行了
使用道具 举报 回复 支持 反对
发表于 2021-8-29 11:21:42 | 显示全部楼层
宝塔技术-小强 发表于 2021-8-27 14:28
换个文件上传的代码就行了

我前端是用 uview的u-upload组件进行文件上传的。难道要放弃uview?我用ApiPost接口调试工具测试了一下,3台安装有宝塔的服务器问题都一样,这是宝塔的问题还是参数设置的问题?
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表