1

私はcakephpを使用して単一のPDFファイルをアップロードしたいだけです、これが私の見解pdfadd.ctpです:

<?php echo $this->Form->create('pdfadd1', array('enctype' => 'multipart/form-data'));?>
    <fieldset>
    <?php
        echo $this->Form->file('Document.submittedfile');
    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit'));?>

これが私のコントローラーです:

 public function pdfadd(){
     if ($this->request->is('post') || $this->request->is('put')) {
         //die();
         $file = $this->request->data['Document']['submittedfile'];
         //$this->pdfadd1->save($this->request->data);
         move_uploaded_file($this->data['Document']['submittedfile']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/app/webroot/files/' . $this->data['Document']['submittedfile']['name']);
     }

それは私にこのエラーを与えます:

Warning (2): move_uploaded_file(D:/Program Files D/xampp/htdocs/app/webroot/files/Functions Package for email (1).pdf): failed to open stream: No such file or directory [APP\Controller\PagesController.php, line 29]
Warning (2): move_uploaded_file() [function.move-uploaded-file]: Unable to move 'D:\Program Files D\xampp\tmp\php862.tmp' to 'D:/Program Files D/xampp/htdocs/app/webroot/files/Functions Package for email (1).pdf' [APP\Controller\PagesController.php, line 29]

また、ファイルの名前をに変更したいと思います1.pdf。ファイルはに保存する必要がありますwebroot/files

4

3 に答える 3

4

これを置き換えます:

$_SERVER['DOCUMENT_ROOT'] . '/app/webroot/files/' . $this->data['Document']['submittedfile']['name']

これとともに:

WWW_ROOT . 'files' . DS . '1.pdf'

ただし、PHPのis_uploaded_file関数を使用したり、ファイルが実際にPDFであることを確認したりするなど、実際にはさらに検証を行う必要があります。

于 2013-02-08T02:37:15.670 に答える
1
move_uploaded_file($this->data['Document']['submittedfile']['tmp_name'],      $_SERVER['DOCUMENT_ROOT'] . '/app/webroot/files/' . $this->data['Document']['submittedfile']['name']);

1.ディレクトリ2.c:xampp / htdocs(cakephpでアップロードするためのデフォルトの場所)に従ってこのコードを変更し、アップロードファイルの場所を配置します

 move_uploaded_file($this->data['Document']['submittedfile']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . 'cakephp/app/webroot/files/' . $this->data['Document']['submittedfile']['name']);

3.アップロードする前に名前を変更できます

于 2013-09-04T12:35:15.173 に答える
1

この行はファイル名のみを取得し、ファイルは取得しません。

$file = $this->request->data['Document']['submittedfile'];

これを使用できます。

$file = $_FILES ['Document'] ['submittedfile'];
于 2015-02-17T11:11:41.940 に答える