Php 图像上载在共享服务器中托管的Laravel项目中不起作用

Php 图像上载在共享服务器中托管的Laravel项目中不起作用,php,laravel-5,Php,Laravel 5,我在共享主机中部署了一个Laravel项目。我已更改了.env文件,并将所有文件从公用文件夹复制到主目录,并删除了公用文件夹。现在的问题是,每当我试图上传图像时,我都会收到一个内部服务器错误。我想问题是图像干预没有获得正确的文件夹来保存图像。我尝试了以下两种方法: if ($request->hasfile('admin_pro_pic')) { $image = $request->file('admin_pro_pic'); $filename = time

我在共享主机中部署了一个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;               
}   


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

使用laravel
base\u 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;               
}
答案更新


问题是fileinfo扩展丢失或已解除锁定。

使用laravel
base\u 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;               
}
答案更新

问题是fileinfo扩展丢失或被取消。请尝试此操作

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。

试试这个

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。

我是这样处理的:

// 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, '.'));

我是这样处理的:

// 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, '.'));

你对你的图像文件夹有写权限吗?我有权限0755你能给我看一下你的错误日志吗?或者你得到的是完全的例外?哎呀,看起来好像出了什么问题。当我试图上传图片时,我得到了这个。错误日志中没有任何内容最有可能的问题是您的.env文件,如果您希望laravel为您显示错误而不是一般消息“哇”消息,请将.env.example复制到.env。然后它将显示详细的错误消息。您对您的图像文件夹有写入权限吗?我有权限0755您可以显示您的错误日志吗?或者你得到的是完全的例外?哎呀,看起来好像出了什么问题。当我试图上传图片时,我得到了这个。错误日志中没有任何内容最有可能的问题是您的.env文件,如果您希望laravel为您显示错误而不是一般消息“哇”消息,请将.env.example复制到.env。然后它将显示详细的错误消息。我已经将公共路径更改为基本路径,并且必须安装php fileinfo以使干预图像在Live上工作。谢谢大家的回答。我已经将公共路径更改为基本路径,并且必须安装php文件信息才能在Live上运行干预图像。谢谢大家的回答。