我最近将我的代码迁移到了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
答案 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()
只能用于上传位置。