2013-07-19 6 views
0

디렉토리가 될 수 없습니다) (복사 아무 생각이 그것을 해결하지 않으려면 ..업로드 파일 YII 두 번째 인수는 함수가 나는 파일을 업로드하지만이 오류 메시지를 얻으려고

<?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)); 
    } 
} 

?> 

답변

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'); 

, 아래의 코드를 참조하십시오.

편집

가져 오기 확장. 당신이보다는 하드 코딩 된 파일의 파일의 확장자를 얻기 위해 요구하는 경우 경우

, 당신은 . (점)없이 당신에게

+1

감사합니다. 작동합니다.이 스크립트를 다시 개선해야합니다. – andrian

+0

안녕하세요. – zzlalani

+0

덕분에 아주 좋은 기사입니다 –

1

을 마지막으로, 나는 나 자신에 의해 그것을 해결 :

문제는 라인에 위치했다

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

그것은해야한다 : 이제

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

, 또 다른 문제가있다 : 나는 '새로운 이미지'를 업로드 할 때, 그것은 내가 파일을 원하는, 기존 파일을 대체 할 것이다 업로드를 교체되지되고 오래된 파일이거나 새 파일로 이름을 바꿀 필요가 있습니다. 아무도 몰라?

+2

가 다른 문제가있는 경우, 별도의 질문을하거나 원래 문제가 계속 필요가있는 경우 기존 질문을 수정 ......... U 감사합니다 작업. 답변 내에서 질문하지 마십시오 : 거의 널리 보지 못하고 적절히 대답 할 수 없습니다. –

+0

죄송합니다. 내 잘못이지만 감사합니다. – andrian

0

고토 cuploadedfile를 업로드 된 파일의 확장자를 얻을 것이다 $model->image->getExtensionName();을 사용할 수 있습니다 .php. 는 이상이

if($this->_error==UPLOAD_ERR_OK) 
{ 
    if($deleteTempFile) 
     return move_uploaded_file($this->_tempName,$file."/".$this->getName()); 
    elseif(is_uploaded_file($this->_tempName)) 
     return copy($this->_tempName, $file."/".$this->getName()); 
    else 
     return false; 
} 

이 함수를 작성하는 것은