图像上载在共享服务器

时间:2018-02-15 10:09:42

标签: php laravel-5

我在共享主机中部署了一个Laravel项目。我已更改我的.env文件并将所有文件从公用文件夹复制到主目录并删除了公用文件夹。现在问题是,每当我尝试上传图像时,我都会收到内部服务器错误。我想问题是图像干预没有得到正确的文件夹来保存图像。我尝试过以下两种方式:

            if ($request->hasfile('admin_pro_pic')){  
                $image = $request->file('admin_pro_pic');
                $filename  = time() . '.' . $image->getClientOriginalExtension();
                $location = public_path('/images/admin/' . $filename);
                Image::make($image)->resize(950, 700)->save($location);
                $admin->admin_pro_pic = $filename;               
            }   

            if ($request->hasfile('admin_pro_pic')){  
                $image = $request->file('admin_pro_pic');
                $filename  = time() . '.' . $image->getClientOriginalExtension();
                $location = '/images/admin/' . $filename;
                Image::make($image)->resize(950, 700)->save($location);
                $admin->admin_pro_pic = $filename;               
            }

但这些都不起作用。任何可能的解决方案?

3 个答案:

答案 0 :(得分:2)

使用laravel base_path函数,因此您的代码将如下所示

 if ($request->hasfile('admin_pro_pic')){  
            $image = $request->file('admin_pro_pic');
            $filename  = time() . '.' . $image->getClientOriginalExtension();
            $location = base_path().'/images/admin/' . $filename;
            Image::make($image)->resize(950, 700)->save($location);
            $admin->admin_pro_pic = $filename;               
        }

回复更新

问题是文件信息扩展丢失或被删除。

答案 1 :(得分:1)

试试这个。

use Storage;
use File;
 if(!empty($request->file('admin_pro_pic')))
    {
       $file = $request->file('admin_pro_pic') ;
        $fileName = $file->getClientOriginalName() ;
        $destinationPath = public_path().'/images/' ;
        $file->move($destinationPath,$fileName);

        $admin->image=$fileName;
    }

在公共目录中创建 imges

答案 2 :(得分:0)

我这样处理它:

// check for defined upload folder inside .env file, otherwise use 'public'
$publicUploadDir = env('UPLOAD_PUBLIC', 'public/');
// get file from request
$image = $request->file('admin_pro_pic');
// hasing is not necessary, but recommended
$new['path'] = hash('sha256', time());
$new['folder] = 'images/admin/';
$new['extension'] = $file->extension();
// store uploaded file and retrieve path
$image->storeAs($publicUploadDir, implode($new, '.'));