2015-06-10 1 views
0

Я использую модуль загрузки файла blueimp с Yii, чтобы попытаться загрузить файл на свой сервер (в настоящее время localhost). Я дал полным разрешениям на чтение и запись (это C: \ xampp \ htdocs \ yii), но я все равно получаю сообщение об ошибке при попытке выполнить команду move_uploaded file.Yii не будет move_uploaded_file - ошибка внутреннего сервера 500

Вот основная форма и входной файл площадь:

<form id='upload' method='post' action='?r=site/move' enctype='multipart/form-data' style="padding:0;"> 
    <span class="btn fileinput-button" style="padding:0"> 
     <i class="glyphicon glyphicon-picture"> 
      <input id="fileupload" type="file" accept="image/*" name="attachment" onchange="attachAttachment()"> 
     </i>           
    </span> 
</form> 

Вот FileUpload blueimp (в функции()):

$("#fileupload").fileupload 
({ 

     dataType: 'json', 

     done: function (e, data) 
     { 
      console.log("YAY"); 
     }, 

     fail: function(e, data) 
     { 
      console.log("FAIL"); 
     } 
}); 

Вот actionMove, где я переместить файл из каталог temp к папке:

public function actionMove() 
{ 
    if (isset($_FILES['attachment']) && $_FILES['attachment']['error'] == 0) 
    {   
     if (move_uploaded_file($_FILES['attachment'], Yii::getPathOfAlias('webroot')."/images/uploads")){ 
      $response = '{"status":"success"}'; 
     } 
     else { 
      $response = '{"status":"error"}'; 
     } 

     echo $response; 
     exit(); 
    } 
} 

Я был на это в течение нескольких часов, любая помощь приветствуется :(

ответ

0

$_FILES['attachment'] ссылки на все данные о загрузке. move_uploaded_file использует имена файлов для работы. Вот то, что вы должны попробовать:

$uploadPath = Yii::getPathOfAlias('webroot')."/images/uploads"; 
$uploadFilename = basename($_FILES['attachment']['name']); 
$tempFilename = $_FILES['attachment']['tmp_name']; 
$ok = move_uploaded_file($tempFilename, $uploadPath.'/'.$uploadFilename); 
if ($ok) { 
    $response = '{"status":"success"}'; 
} else { 
    $response = '{"status":"error"}'; 
} 

Подробнее об этом на страницах документации: http://php.net/manual/fr/features.file-upload.post-method.php и http://php.net/manual/fr/function.move-uploaded-file.php

Надеются, что это помогает.