gpt4 book ai didi

php - 未定义索引 : file

转载 作者:行者123 更新时间:2023-12-02 17:54:22 26 4
gpt4 key购买 nike

当我第一次进入上传表单页面时,或者如果我移至下一页并单击后退按钮,我会收到 undefined index 错误,然后我会收到相同的错误消息。如果我上传一个文件,那么它工作正常并且错误消息消失。

我也尝试过这个:

global $file;
if (!isset($file)) {
$file = '';
}

这是我的代码:

<form id="uploadForm" name="upload" enctype="multipart/form-data"/>
<fieldset>
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" name="file" />
<?php
echo '<pre>';
var_dump($_REQUEST['file']);
echo '</pre>';

$uploaded = new upload;
//set Max Size
$uploaded->set_max_size(350000);
//Set Directory
$uploaded->set_directory("data");
//Set Temp Name for upload.
$uploaded->set_tmp_name($_FILES['file']['tmp_name']);
//Set file size
$uploaded->set_file_size($_FILES['file']['size']);
//set file type
$uploaded->set_file_type($_FILES['file']['type']);
//set file name
$uploaded->set_file_name($_FILES['file']['name']);
//start copy process
$uploaded->start_copy();
if($uploaded->is_ok())
echo " upload is doen.";
else
$uploaded->error()."<br>";
?>
<div class="filesize">JPG minimaal 800x60 pixels max. 2Mb</div>
<a href="" class="submit" title="Upload your own phooto"><span> Upload your own photo </span></a>

upload_inc.php

<?
class upload
{
var $directory_name;
var $max_filesize;
var $error;

var $user_tmp_name;
var $user_file_name;
var $user_file_size;
var $user_file_type;
var $user_full_name;

function set_directory($dir_name =".")
{
$this->directory_name = $dir_name;
}

function set_max_size($max_file = 2000000)
{
$this->max_filesize = $max_file;
}

function error()
{
return $this->error;
}

function is_ok()
{
if(isset($this->error))
return FALSE;
else
return TRUE;
}

function set_tmp_name($temp_name)
{
$this->user_tmp_name = $temp_name;
}

function set_file_size($file_size)
{
$this->user_file_size = $file_size;
}

function set_file_type($file_type)
{
$this->user_file_type = $file_type;
}

function set_file_name($file)
{
$this->user_file_name = $file;
$this->user_full_name = $this->directory_name."/".$this->user_file_name;
}

function start_copy()
{
if(!isset($this->user_file_name))
$this->error = "You must define filename!";
if ($this->user_file_size <= 0)
$this->error = 'File size error (0):' . $this->user_file_size . 'KB <br>';
if ($this->user_file_size > $this->max_filesize)
$this->error = 'File size error (1):' . $this->user_file_size . 'KB<br>';
if($this->user_file_type != "image/jpeg")
$this->error = "the image must be jpeg extension";
if (!isset($this->error))
{
$filename = basename($this->user_file_name);
if (!empty($this->directory_name))
$destination = $this->user_full_name;
else
$destination = $filename;
if(!is_uploaded_file($this->user_tmp_name))
$this->error = "File " . $this->user_tmp_name . " is not uploaded correctly.";
if (!move_uploaded_file ($this->user_tmp_name,$destination))
$this->error = "Impossible to copy " . $this->user_file_name . " from your folder to destination directory.";
}
}

}
?>

最佳答案

“ undefined index ”表示您正在尝试读取不存在的数组元素。

您的具体问题似乎是您正在尝试读取尚不存在的上传数据:当您第一次访问上传表单时,没有 $_FILES 数组(或者更确切地说,里面什么也没有),因为表格还没有提交。但由于您没有检查表单是否已提交,因此这些行会给您带来错误:

//Set Temp Name for upload.
$uploaded->set_tmp_name($_FILES['file']['tmp_name']);
//Set file size
$uploaded->set_file_size($_FILES['file']['size']);
//set file type
$uploaded->set_file_type($_FILES['file']['type']);
//set file name
$uploaded->set_file_name($_FILES['file']['name']);

它们都试图读取 $_FILES['file'] 的值,并将其传递给 $uploaded 的方法。

您需要事先检查:

if (isset($_FILES['file'])) {
$uploaded = new upload;
//set Max Size
$uploaded->set_max_size(350000);
//Set Directory
$uploaded->set_directory("data");
//Set Temp Name for upload.
$uploaded->set_tmp_name($_FILES['file']['tmp_name']);
//Set file size
$uploaded->set_file_size($_FILES['file']['size']);
//set file type
$uploaded->set_file_type($_FILES['file']['type']);
//set file name
$uploaded->set_file_name($_FILES['file']['name']);
//start copy process
$uploaded->start_copy();
if($uploaded->is_ok())
echo " upload is doen.";
else
$uploaded->error()."<br>";
}

关于php - 未定义索引 : file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6098261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com