【发布时间】:2020-03-03 00:13:23
【问题描述】:
我正在尝试创建一个用户可以上传 pdf 和 doc 文件的网站。另外,我想将文件保存在存储文件夹中,所以我创建了符号链接,以便复制公共文件夹中的文件夹。所以我有一个名为 Public/storage/Paper 的公共文件夹。这是我的表单,用户可以在其中上传论文。
<form class="form-horizontal" method="post" action="paper" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="title">Title of Paper</label>
<input type="text" class="form-control" name="title" placeholder="Title of Paper" required="required">
</div>
<div class="form-group">
<label for="Paper">Upload Paper</label>
<input type="file" class="form-control" name="paper" required="required" >
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
在我的控制器上,我编写了这段代码,当我不需要上传文件时,这就像将数据保存在数据库中一样完美。但是当我需要上传论文时,验证没有通过。
<?php
namespace App\Http\Controllers;
use App\Submission;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;
class PapersController extends Controller
{
public function store(Request $request){
$request->validate([
'title'=>'required',
'paper'=>'required'
]);
$title= $request->input('title');
Validator::make($request->all(),['file'=>"required|string|paper|mimes:pdf,docx"])->validate();
$extension= $request->file("file")->getClientOriginalExtension();
$stringPaperFormat=str_replace(" ", "", $request->input('title'));
$fileName= $stringPaperFormat.".".$extension;
$FileEnconded= File::get($request->paper);
Storage::disk('local')->put('public/Paper'.$fileName, $FileEnconded);
$newsubmission= array("title"=>$title, "first_name"=>$first_name, "last_name"=>$last_name,"isReviewed"=>$isReviewed, "paper"=>$fileName);
$created= DB::table('submissions')->insert($newsubmission);
if($created){
return "Sucessful";
}else{
return "Not Sucessful";
}
}
}
我无法检测到问题。任何形式的帮助将不胜感激。
【问题讨论】: