PHP后端上传图片报错无法上传;奇怪的是部分照片又可以正常上传;无法上传会弹出一大长串的报错问题。<br /><font size=‘1‘><table class=‘xdebug-erro.....

PHP后端在上传图片的时候不知道为什么有的照片可以上传但是部分照片又不能上传;而且会报错:<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: file in ...............


蓝色的区域就是你报错的文件;主要说你的里面第xx行第xx行有问题;

那么就要一一去判别;

【如果确保了你自己的前后端100%的准确无误的话可以拉到后面“👇”的地方看起】

首先
 

$file = $_FILES['file'];

在获取的这行下面

// 打印 $file 变量
var_dump($file);

看下有什么输出;通过打印 $file 变量,您可以查看到其具体的内容和结构,从而确定问题所在。
但是我这里输出了null;

如果 $file 变量为 null,那么可能是由于文件上传的表单中没有正确指定文件字段的名称。请确保前端代码中的文件字段名称与后端代码中的 $_FILES['file'] 的键名一致。

此外,还可以尝试打印 $_FILES 变量来查看整个文件上传的信息,以便调试问题:

var_dump($_FILES);

通过打印 $_FILES 变量,您可以查看到完整的文件上传信息,包括文件名称、临时路径等,从而确定问题所在。我在这里输出的是[];

如果 $_FILES 变量为空数组 [],则可能是由于前端代码未正确设置文件上传的表单字段。请确保在前端代码中将文件上传的表单字段名称设置为 file,并确保表单的 enctype 属性设置为 multipart/form-data

例如,在 <form> 标签中添加以下属性:

<form enctype="multipart/form-data">

另外,确保使用正确的文件上传控件,并将其命名为 file

<input type="file" name="file">

这样,当您选择要上传的文件时,文件数据将正确地传递到后端,$_FILES 变量将包含文件的相关信息。如果问题仍然存在,请检查网络请求是否正确发送到后端,并确保在传递文件时没有发生其他错误。

如果你和我一样确保前后端都是绝对正确的话:请看下面👇

那么很可能是你的图片太大而导致无法上传成功;照片大小过大可能导致无法成功上传。在 PHP 中,有一些限制条件可以影响文件上传的大小。
如果你不清楚你自己的限制是多少;可以去查php.ini文件里面有。

检查 php.ini 文件中的 upload_max_filesizepost_max_size 设置。这些设置限制了可以上传的文件大小和 POST 数据的大小。确保将它们设置为足够大的值,以适应您要上传的照片大小。

如果你确认你的照片也没有超过限制额度那么再看看去测试下$_FILES['file']['error']:
可以通过 $_FILES['file']['error'] 来检查文件上传过程中是否发生了错误。如果 $_FILES['file']['error'] 的值不为 UPLOAD_ERR_OK,则表示上传过程中出现了错误。可以根据实际情况处理这些错误。
 

以下是一些常见的 $_FILES['file']['error'] 值及其含义:

  • UPLOAD_ERR_INI_SIZE:上传的文件超过了 upload_max_filesize 指令在 php.ini 中设置的值。
  • UPLOAD_ERR_FORM_SIZE:上传的文件超过了 HTML 表单中 MAX_FILE_SIZE 指令指定的值。
  • UPLOAD_ERR_PARTIAL:文件只有部分被上传。
  • UPLOAD_ERR_NO_FILE:没有文件被上传。
  • UPLOAD_ERR_NO_TMP_DIR:找不到临时文件夹。
  • UPLOAD_ERR_CANT_WRITE:文件写入失败。

如果你是不知道你的php。ini文件再哪里的话看这个👇:

PHP.ini文件在哪里-CSDN博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值