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

hen*_*spt 2 php pdf file-upload laravel 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>
Run Code Online (Sandbox Code Playgroud)

这是控制器

$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();
Run Code Online (Sandbox Code Playgroud)

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

cra*_*bly 7

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

<input type="file" accept="application/pdf" /> 
Run Code Online (Sandbox Code Playgroud)

要限制大小,您可以在服务器端进行:

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

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

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

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