上载同一服务器上另一个域中的文件

时间:2013-05-22 09:09:37

标签: php yii

我需要在域中移动所有上传的文件,并且所有网站都将在另一个域中 但是在同一个服务器ip中,如何编辑上传过程来上传文件 直接到“文件域”?。

EX:

网站域名:doamin.com

文件域名:myfiles.com

以正常方式这是我的代码:

查看

 ...........
    <?php $form=$this->beginWidget('CActiveForm', array(
        'id'=>'Cfiles-form',

            'enableAjaxValidation'=>false,
            'enableClientValidation'=>true,
            'clientOptions'=>array('validateOnSubmit'=>true), //This is very important


           'htmlOptions' => array('enctype' => 'multipart/form-data'),
    )); ?>
        <div class="row">
            <?php echo $form->labelEx($model,'file'); ?>
            <?php echo $form->fileField($model,'file'); ?>
            الملفات المسموحة : jpg,gif, png,pdf,rar,zip,doc,docx
            <?php echo $form->error($model,'file'); ?>
        </div>
    ...............

控制器

public function actionCreate()
    {

       ..................
.

        // Uncomment the following line if AJAX validation is needed
        $this->performAjaxValidation($model);

        if(isset($_POST['Cfiles']))
        {



            $model->attributes=$_POST['Cfiles'];
            $valdiate=$model->validate();


         /////// upload image functions 

         $rnd = rand(0,999984375);  // generate random number between 0-9999
         $model->attributes=$_POST['Cfiles']['file'];


            $uploadedFile=CUploadedFile::getInstance($model,'file');
        if(!empty($uploadedFile)){
            $ext=$uploadedFile->getExtensionName();
            $fileName = "isa$rnd.{$ext}";  // random number + file name
            }


             ////////// end 


            if($model->save()){

               $f_id=$model->primaryKey; 

               ................

                      if(!empty($uploadedFile))  // check if uploaded file is set or not
                {
                 $uploadedFile->saveAs(Yii::app()->basePath.'/../cfillaf/'.$fileName);  // upload image to server 
                  $model->file = $fileName;

                  $model->save(false);
               }   

  ....................

        }

提前致谢

1 个答案:

答案 0 :(得分:3)

Dagon的意思是:

$uploadedFile->saveAs(Yii::app()->basePath.'/../cfillaf/'.$fileName);

可以改为:

$uploadedFile->saveAs('http://www.myfiles.com/my_writable_image_dir/'.$fileName);

不要忘记确保myfiles.com/my_writable_image_dir/是可写的。

但是,由于两个域位于同一服务器上,因此您可以使用服务器路径访问映像文件夹。像这样:

$uploadedFile->saveAs(Yii::app()->basePath.'/../../../myfiles.com/public_html/my_writable_image_dir/'.$fileName);

希望有所帮助