0

ファイルをアップロードしようとしていますが、次のエラー メッセージが表示されます。

 move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: The second argument to copy() function cannot be a directory 

このファイルに何か問題があると思いますが、解決する方法がわかりません..

    <?php


    class FileUploadController extends CController {


    public function actionUpload() {
        $model = new FileUpload();
    $form = new CForm('application.views.fileUpload.uploadForm', $model);
        if ($form->submitted('submit') && $form->validate()) {
            $form->model->image = CUploadedFile::getInstance($form->model, 'image');


                  if($model->validate())
            {
                $model->image->saveAs('/opt/lampp/htdocs/upl/images');

            Yii::app()->user->setFlash('success', 'File Uploaded');
            $this->redirect(array('upload'));
            }


        }
        $this->render('upload', array('form' => $form));
    }
}

?>
4

3 に答える 3

2

に存在するすべてのファイルを確認し'/opt/lampp/htdocs/upl/images'、同じ名前のファイルが利用可能かどうかを確認する必要があります。利用可能な場合は、ファイルの名前を毎回追加の「_1」で変更するか、ファイルの名前を変更して、いつでもファイルをアップロードできます。以下のコードを参照してください。

$name = rand(1000,9999) . time(); // rand(1000,9999) optional
$name = md5($name); //optional
$model->image->saveAs('/opt/lampp/htdocs/upl/images/' . $name . '.jpg');

これは、ファイルの参照をデータベースまたは任意のテキスト ファイルに保存する場合、通常、ファイルのアップロードで行うことです。

編集

拡張機能を取得します。

ハードコーディングではなくファイルの拡張子を取得する必要がある場合は、$model->image->getExtensionName();それを使用して、アップロードされたファイルの拡張子を.(ドット)なしで取得できます。

于 2013-07-19T03:39:15.607 に答える
1

最後に、私は自分でそれを解決しました:

問題は行にありました

$model->image->saveAs('/opt/lampp/htdocs/upl/images');

そのはず :

$model->image->saveAs('/opt/lampp/htdocs/upl/images/images.jpg');

ここで、別の問題があります。「新しい画像」をアップロードすると、古いファイルが置き換えられます。アップロードするファイルが古いファイルではなく、新しいファイルとして名前を変更する必要があります。誰か知っていますか?

于 2013-07-19T03:14:45.950 に答える