1

我正在为我的用户构建一个 pdf 转换实用程序。我正在工作,CakePhp我的控制器正在接收 Ajax 调用。为什么我收到通知:8错误

控制器:

public function convertToPdf() {
            $this->autoRender = false;
            $pdf = new WkHtmlToPdf;
            //$this->RequestHandler->respondAs('json');
            // echo $convertData = json_encode($inputVal);

            if ($this->RequestHandler->isAjax()) {
                $pdfName = uniqid();
                if ($_FILES['conversionSourceFile']) {
                    echo "File";
                    $pdf->addPage($_FILES['conversionSourceFile']['tmp_name']);
                } elseif ($_POST['conversionSourceUrl']) {
                    echo "Url";
                    $pdf->addPage($_POST['conversionSourceUrl']);
                } elseif ($_POST['conversionSourceHtml']) {
                    echo "Html";
                    $pdf->addPage('<html>' . $_POST['conversionSourceHtml'] . '</html>');
                }

                $saveToPath = 'upload/' . $pdfName . '.pdf';
                if ($pdf->saveAs($saveToPath)) {
                    echo 'upload/' . $pdfName . '.pdf';
                }
            }
        }

错误: 注意(8):未定义索引:conversionSourceFile [APP/Controller/PdfsController.php, line 42] 代码上下文

if ($this->RequestHandler->isAjax()) {
            $pdfName = uniqid();
            if ($_FILES['conversionSourceFile']) {

PdfsController::convertToPdf() - APP/Controller/PdfsController.php, line 42
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 486
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 187
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 162
[main] - APP/webroot/index.php, line 109
4

4 回答 4

4

为了避免notice在您的代码中,您必须使用isset()OR !empty()

使用isset()and!empty()您可以检查变量是否已设置并且没有空值。

例如,

if (isset($_FILES['conversionSourceFile'])) {
    // your code
}

或者

if (!empty($_FILES['conversionSourceFile'])) {
    // your code
}
于 2013-09-05T09:28:35.817 回答
3

只需检查isset$_FILES 超全局变量以防止未设置时的通知。

if (isset($_FILES['conversionSourceFile'])) {
    // Do more stuff
}
于 2013-09-05T09:20:17.653 回答
2

您需要使用“isset”或“!empty ()”检查第一个条件,例如:

if(isset($_FILES['conversionSourceFile'])){...}
于 2013-09-05T09:20:33.217 回答
1

我解决了更改 var $ 使用顺序的错误“注意 (8):未定义索引”。

前:

class GastosController extends AppController {  
    var $uses = array('Comprobante','Gasto','TipoGasto');

... ... ..

后:

class GastosController extends AppController {  
    var $uses = array('Gasto','Comprobante','TipoGasto');

.. .. ..

将与类 (Gasto) 对应的名称放在首位。

于 2014-09-03T18:37:11.607 回答