Laravel 5.3照片上传与plupload目录相关的问题

时间:2017-01-24 15:29:50

标签: php laravel-5.3 plupload

我最近将我的代码迁移到了laravel。我使用带有laravel的plupload遇到了文件上传问题。在pluploaded文件中,在表单提交之前上传到服务器。成功上传文件后,文件路径将被放入隐藏的输入字段中。 我的上传代码如下。

public function photo(){
  $target_file = "";
  $this->target_dir = base_path() ."/uploads/";
  if($_FILES['file']['name']){
     $filename = AppUtils::get_new_filename($this->ext);
     $filename = "photo_" . $filename;
     $target_file = $this->target_dir . $filename;
     move_uploaded_file($_FILES['file']['tmp_name'],$target_file);
     $photo = $this->target_dir . $filename;
     echo $photo;
     die();
   }
   else{
     AppUtils::fail();
   }
}

问题是没有在$ target_dir中使用base_path(),文件没有正确上传。但是使用base_path()预览图像而不是实际位置。 例如,上传照片后输出为/var/www/htm/lar/uploads/xyz.jpg
但在预览图像路径中显示:http://example.com/lar/var/www/html/lar/uploads/xyz.jpg

1 个答案:

答案 0 :(得分:1)

试试这个:

public function photo(){
  $target_file = "";
  $this->target_dir = "/uploads/";
  if($_FILES['file']['name']){
     $filename = AppUtils::get_new_filename($this->ext);
     $filename = "photo_" . $filename;
     $target_file = base_path() . $this->target_dir . $filename;
     move_uploaded_file($_FILES['file']['tmp_name'],$target_file);
     $photo = $this->target_dir . $filename;
     echo $photo;
     die();
   }
   else{
     AppUtils::fail();
   }
}

base_path()只能用于上传位置。