0

Yii フレームワークの登録フォームから画像をアップロードしようとしています。画像は「img/avatar」フォルダーに保存され、画像の名前はユーザー名に変更する必要があります。これに使用するコードは次のとおりです。

//uploading avatar to the img/avatar folder
$upload_file = CUploadedFile::getInstance($personModel, 'picture');
$personModel->picture = $upload_file;
$picture_name = $userModel->username;
$personModel->picture = $picture_name;
if(isset($upload_file))
{
    $upload_file->saveAs(Yii::app()->basePath.'/../img/avatar'.$picture_name);
}
$personModel->save();
//end of image uploading part

問題は、ユーザー名の名前がデータベースの画像行に保存されていることです。しかし、画像はフォルダにアップロードされませんでした。コードの問題を見つけようとしています。しかし、それを解決することはできません。助言がありますか?

4

4 に答える 4

0

最初に行う必要があるのは、画像が保存されていない場合にデータベースへの入力を防止することです。

if(isset($uploadedfile))
{
      if($upload_file->saveAs(Yii::app()->basePath.'/../img/avatar'.$picture_name)
      {
                 $personModel->save();                
      }
      else
      {
           //throw error
      }
}

コードの問題に関する限り。最も一般的な問題は、ディレクトリが存在しないこと、それらへのパスが正しくないことです。

于 2016-03-10T18:31:49.447 に答える