Laravel文件上传图片无法正常托管

时间:2016-09-01 01:53:34

标签: forms laravel

帮助我的代码在xampp和php artisan上运行localhost:8000 但在服务器托管验证失败。当我尝试上传图片时,返回Errors: The image field is required.

public function store(Request $request)
{  
 $this->validate($request, array(
         'image' => 'mimes:jpeg,png,bmp|required|max:3000'
 ));

Session::flash('success', 'Image been uploaded.');  

return redirect()->route('galleries.index');
}

HTML

{!! Form::open(['route' => 'galleries.store', 'class' => 'form-inline', 'files' => true]) !!}

{!! Form::file('image', ['required' => '']) !!} 

{!! Form::submit('Upload', ['class' => 'btn btn-success']) !!}

{!! Form::close() !!}

1 个答案:

答案 0 :(得分:0)

  

Flash数据

     

有时您可能希望仅在下一个请求中将项目存储在会话中。您可以使用flash方法执行此操作。使用此方法存储在会话中的数据仅在后续HTTP请求期间可用,然后将被删除。 Flash数据主要用于短期状态消息:

在这种情况下,您可以将此来源用于上传文件

$fileName = $this->getFileName($file);
$pathUpload = $this->createPath(sprintf('%s', $config['path']));
$media = $file->move($pathUpload, $fileName);

protected function createPath($paths)
{
    if (!is_array($paths)) {
        if (!\File::exists($paths)) {
            \File::makeDirectory($paths, $mode = 0777, true, true);
        }
    } else {
        foreach ($paths as $path) {
            if (!\File::exists($path)) {
                \File::makeDirectory($path, $mode = 0777, true, true);
            }
        }
    }
    return $paths;
}

创建文件夹和设置权限的函数createPath

使用file_put_content方法移动文件