使用Laravel 5.0浏览要上传的文件时如何仅显示.pdf文件?

时间:2016-06-06 02:25:31

标签: php laravel pdf file-upload laravel-5

我使用的是Laravel 5.0。我有一个文件上传功能。进行得顺利。但我想让用户只上传pdf文件。我想在浏览文件时,存储只显示只有.pdf文件的文件。我希望对要上传的文件有一个大小限制。

  

这是视图

    <div class="form-group">
        <label for="upload_file" class="control-label col-sm-2">Upload File</label>
        <div class="col-sm-9">
            <input class="form-control" type="file" name="upload_file" id="upload_file" required>
        </div>  
    </div>
  

这是控制器

$destination = 'files';

    if($request->hasFile('upload_file')) {
        $file = $request->file('upload_file');
        $extension = $file->getClientOriginalExtension();
        $file_name =  str_replace('/','_',$request['nomor_surat']) . '-' . $kode_divisi[0]->kode_divisi . '.' . $extension;

        $file->move($destination, $file_name );
    }
    $upload_file = $file_name;

    $surat = new Surat();
    $surat->upload_file = $upload_file;
    $surat->save();

接下来我该怎么办?我应该在控制器和路线和视图中添加什么?

1 个答案:

答案 0 :(得分:3)

您可以限制用户仅使用HTML文件输入accept属性浏览PDF文件:

<input type="file" accept="application/pdf" /> 

要限制大小,您可以在服务器端执行此操作:

$file = $request->file('upload_file');

//no files larger than 700kb
if ($file->getSize() > 700000)
{
    //respond not validated, file too big.
}

您也可以验证服务器上的文件类型:

if ($file->getClientMimeType() !== 'application/pdf')
{
    //respond not validated, invalid file type.
}