我使用的是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();
接下来我该怎么办?我应该在控制器和路线和视图中添加什么?
答案 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.
}