我正在尝试使用 PHP 等文件,我编写了这个基本类,它没有完全实现,如您所见:
class AisisCore_FileHandling_Upload_Upload{
private $_file;
static private $_errors;
public function __construct() {
$this->init();
}
public function init(){}
public function check_file(array $file, string $size){
$this->_file = $file;
if ($this->_file['size'] > $size) {
$this->_error('size', 'The size of your zip exceeds that of the set size: ' . $size);
}
if ($this->_file['type'] != 'application/zip') {
$this->_error('type', 'File type must be a .zip');
}
if (!strops($this->_file['name'], 'package') || !strops($this->_file['name'] == 'theme')) {
$this->_error('name', 'File uploaded does not contain the words "package" or "theme." Unreconized.');
}elseif(strops($this->_file['name'], 'package')){
$this->package($this->_file);
}elseif(strops($this->_file['name'], 'theme')){
$this->theme($this->_file);
}
wp_safe_redirect(admin_url('admin.php?page=aisis-core-upload'));
}
public function theme(array $file){
}
public function package(array $file){
}
protected function _error(string $code, string $message){
self::$_errors[$code] = $message;
}
public function get_all_errors(){
foreach($this->_errors as $code=>$message){
echo '<div class="alert alert-error"><strong>'.$code.'</strong>: '.$message.'</div>';
}
}
}
此类与表单交互:
$upload = new AisisCore_FileHandling_Upload_Upload();
if($_POST['aisis_upload']){
$upload->check_file($_FILES['aisis_file'], $_POST['MAX']);
}
$upload->get_all_errors();
<form action="" method="POST">
<fieldset>
<div class="control-group">
<input type="file" class="input-xlarge" name="aisis_file" placeholder="Your file.">
<input type="hidden" name="MAX" value="1024">
</div>
<div class="control-group">
<input type="submit" class="btn btn-primary" value="Upload Zip" name="aisis_upload">
</div>
</fieldset>
</form>
当表单提交的文件违反“检查”规则时,它应该(如您从 中看到的wp_safe_redirect(admin_url('admin.php?page=aisis-core-upload'));
)重定向回它所在的页面(此重定向也发生在所有事情都说完之后,文件通过或失败。
我遇到的问题是我将错误存储在一个静态变量中,当我返回页面时应该保存该变量,从那里我应该能够消除错误,而不是我得到什么。只是一个空白页,没有错误吐出,xdebug 是沉默的......
我将如何调试这个?我尝试 var 在提交之前和之后但在它的 null 之前转储错误,就像它应该和提交之后它......那么页面是空白的。
想法?