0

我有以下用于成功上传图片的代码:

$fileName = $_FILES['file']['name'];
$fileSize =  $_FILES['file']['size'];
$fileType = $_FILES['file']['type'];
$fileTmp = $_FILES['file']['tmp_name'];
list($origWidth, $origHeight) = getimagesize($fileTmp);

问题是我在每一行都得到了一个“未定义的索引”。

我在这段代码之前有 print_r($_FILES) 并且每个数组变量都存在,并且我已经回显了 $fileName 之类的变量,并且可以看到每个变量都有一个值。

我也把它放在这个代码块之前,它没有任何区别:

$fileName = $fileSize = $fileType = $fileTmp = ''; 

有什么建议可以确保定义这些变量吗?

谢谢你

更新.............................

这是 HTML 代码:

      <form action="http://www.domainname.com/scripts/php/processing.php?page=join&section=precrop&type=profile&token=photoToken" method="post" id="joinPhotoUploadFormProfile" enctype="multipart/form-data">
        <input type="file" name="file" class="fileProfile"><br>
      </form>

更新...............................

var_dump($_FILES); 下面的输出:

在此处输入图像描述

4

1 回答 1

1

由于您正在获取Undefined index并且脚本成功完成上传,只需添加以下几行以确保请求方法实际上是正确POST的并且$_FILES数组已设置。

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $fileName = (isset($_FILES['file']['name']) ? $_FILES['file']['name'] : null);
    $fileSize = (isset($_FILES['file']['size']) ? $_FILES['file']['size'] : null);
    $fileType = (isset($_FILES['file']['type']) ? $_FILES['file']['type'] : null);
    $fileTmp = (isset($_FILES['file']['tmp_name']) ? $_FILES['file']['tmp_name'] : null);

    //the rest of your upload code
}

看起来您通过 url 传递了很多变量, processing.php?page=join&section=precrop&type=profile&token=photoToken这表明您在脚本中有其他条件,因此请确保您在正确的位置编辑代码。

于 2013-06-30T04:52:37.080 回答