php $_FILES错误说明 以及图片前端图片上传失败。

我的另一个原文:https://blog.csdn.net/qq_36570464/article/details/80692241

今天被一个问题弄了好久,

先看代码:

前端:

<form method="post" action="upimage.php" enctype="multipart/form-data">
 <input type="hidden" value="204800" name="MAX_FILE_SIZE"/>
 File: <input type="file" name="file" />
 <input type="submit" value="OK" name="submitbtn" style="width:100px;height:23px"/></center>
</form>

php:(部分)

$imgfile=$_FILES["file"];
$submitbtn=$_POST[‘submitbtn‘];
var_dump($imgfile);
 if($submitbtn==‘OK‘ and is_array($imgfile)){      // is_array 检测变量是否是数组
 $name=$imgfile[‘name‘];  //取得图片名称
 $type=$imgfile[‘type‘]; //取得图片类型
 $size=$imgfile[‘size‘];  //取得图片长度
 $tmpfile=$imgfile[‘tmp_name‘];  //图片上传上来到临时文件的路径
     // is_uploaded_file 判断文件是否是通过 HTTP POST 上传的
 if($tmpfile and is_uploaded_file($tmpfile)){  //判断上传文件是否为空,文件是不是上传的文件

通过运行:

上传小一点图片没有问题,大一点的就不行了,自然而然会想到是文件限制的问题?

由于刚接触不太懂,中间走了不少弯路。

最后通过:

var_dump($imgfile);

添加var_dump();看看打印的是什么

如图,这是打印的结果,可以看见error  的值为2!!!关于
PHP $_FILES错误说明error 0,1,2,3,4,5,6,7

点击可查看:

我们发现是文件超出了大小。

经过网上查找,我只这么搜索的:“其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。”

网上出现很多解决方法:好像没有一个符合的,都是讲什么php .ini 配置文件里 的upload_max_filesize 值改大什么的。

我试了,没用,好吧,这样来回折腾,几个小时过去了,最后

我删了

<input type="hidden" value="204800" name="MAX_FILE_SIZE"/>

然后再次上传,然后成功了,

我又比对了文件。

可以发现,这里是文件的大小value 限制了,

完全不够,

所以,最根本的原因,就是value 大小太小了。我们的设置大一点,问题解决了。

value  的里面数值单位是字节

这里是重点,所以我们不要在把php.ini 里的配置混为已添加了。
---------------------
作者:bubbleTg
来源:CSDN
原文:https://blog.csdn.net/qq_36570464/article/details/80692241
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/bubbletg/p/10225328.html

时间: 2024-08-01 02:04:55

php $_FILES错误说明 以及图片前端图片上传失败。的相关文章

前端获取图片压缩后上传给后台

 此前有同事跟我聊过关于移动端用canvas压缩图片后再上传的功能,最近有了点空闲时间,所以就实践了一下.demo效果链接在文章底部贴出. 在做移动端图片上传的时候,用户传的都是手机本地图片,而本地图片一般都相对比较大,拿iphone6来说,平时拍很多图片都是一两M的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上传显然不是一个好办法. 目前来说,HTML5的各种新API都在移动端的webkit上得到了较好的 实现.根据查看caniuse,本demo里使用到的FileRe

iOS开发——项目实战总结&amp;类微信朋友圈发动态功能初步-图片与视频上传

类微信朋友圈发动态功能初步-图片与视频上传 最近在做一个新的项目,涉及到了关于图片和视频上传和显示的功能,研究了一段时间,总结一下. 使用AFNetworking上传图片(可一次上传多张图片,包含不同类型png, jpeg)和视频 1 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 2 3 AFHTTPRequestOperation *operation = [manager P

JSP+SpringMVC框架使用WebUploader插件实现注册时候头像图片的异步上传功能

一.去官网下载webuploader文件上传插件 https://fex.baidu.com/webuploader/ 下载好后把它放到Javaweb项目的文件夹中(我放到了webcontent下面的static里面) 二.复制前端的样式 把这段代码放到你想要放到的位置(刷新页面和示例中不一样?不用担心因为你还没有初始化{就是还没有导入swf文件},指定路径后刷新应该就好了) 三.复制实现文件异步上传的js代码(这里我们只复制图片上传的部分) js源码的中文是乱码,应该是缺少谷歌改编码格式的插件

div中粘贴图片并上传服务器 div中拖拽图片文件并上传服务器

应用简介:此文主要是描述如何在前端div中直接ctrl+v 粘贴图片,并上传到服务器,包括拖拽图片文件到div中 应用场景描述:用QQ或者其它切图软件截图,在指定的div中ctrl+v 粘贴并显示,点击上传按钮,图片上传到服务器.类似实现了此功能的网站有 知乎,强力建议博客园实现此功能,                     写博客时插入图片方便的多. 适用环境:本代码目前适用谷歌浏览器,其它浏览器需要稍微改良一下即可,问题不大. 开发环境:vs2015 mvc 不说废话了,开始吧: 1:首先

绕过图片格式限制上传木马获取WebShell

思路: 图片上传功能中,前端页面上传的是.png格式的图片文件,但是抓包Request中修改图片后缀为.php 可以绕过对上传文件格式的限制,文件的上传路径可以在上传后的页面或查看上传成功后的response中有显示, 记录下来后用菜刀连接即可. (1)网站要求上传png格式的文件 (2)保存-抓包,将文件后缀.png删除,剩余.php文件继续提交,提示成功. Content-Disposition: form-data; name="fun_menu_icon" test123tro

【项目相关】MVC中使用WebUploader进行图片预览上传以及编辑

项目中需要用到多图片上传功能,于是在百度搜了一下,首先使用了kissy uploader,是由阿里前端工程师们发起创建的一个开源 JS 框架中的一个上传组件...但,后面问题出现了. 在对添加的信息进行重新编辑的时候,这些图片怎么办?由于对js不是很熟悉,就没有想去修改这个组件的代码.只有重新寻找合适的组件,于是就找到了百度的WebUploader,下面简要描述一下该组件在MVC中的使用,包括图片的上传和预览,以及在编辑界面对图片的处理办法. 先来一张效果图: (一)图片的上传和预览 (1)下载

从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文本web编辑器,而且全中文API和注释,方便学习和使用.特别是图片上传查看及涂鸦功能极为喜欢,但是有很多情况我们并不需要Web编辑器,而只需要图片上传.那么问题来了,提取图片上传哪家强..... 网上有很多图片上传的控件.插件.但都不是那么的完美,有的只有一张图片上传不包含批量上传,有的没有图片查看

图片的粘贴上传

如果浏览器支持HTML5,通过past事件就可以获取图片的base64位字符,这样就可以实现图片的粘贴上传. 前端: <div id="imgDiv" style="border: 1px solid darkblue"> CTRL+V即可实现粘贴 </div> <script type="text/javascript"> function doPaste() { pasterTool.paste(); }

图片拖拽上传至服务器

今天遇到一个新的问题,就是图片拖拽上传至服务器,一般,我们会想到使用ajax,但是现在问题是ajax默认是没有提交事件的,也就是说,我们拖拽上传图片后,没法将上传的图片信息发送到服务器,这时候就要模拟form表单的提交了. 既然要上传,这里首先要讲到的就是图片拖拽上传了. oDiv.ondrop = function(e) { e.preventDefault(); //获取拖拽过来的对象,文件对象集合 var fs = e.dataTransfer.files; //若为表单域中的file标签

基于cropper和sweetalert的简单图片/头像裁剪上传

基本功能 前端基本样式: 进行图片裁剪及上传: 点击上传后,js会将截取到的数据转为图片数据利用ajax发送给后台进行存储.存储成功后,刷新前端页面,头像改变. 上传成功后:自动刷新网页,更改头像 基本工具 cropper是一个功能强大的jq插件,在指定图片img上添加裁剪框,并根据指定事件对图片按照裁剪框的大小进行裁剪. crepper还可以对定义图片翻转.放大.移动以及输出裁剪框位置的很多功能,由于此处只是用于头像上传,所以只使用了基本功能. cropper使用时需要用到jq2.0以上,所以