大家好!我只想问一下如何将.zip文件上传到服务器(在Ubuntu OS中)?
案例:我想在服务器计算机(Ubuntu OS)的桌面文件夹中上载.zip文件。
到目前为止,我已经完成了什么:我已经有了UI和一些代码。
上传文件控制器:
public function __construct() {
view()->share('page_title', 'File Upload');
}
public function index(){
$data = File::all();
return view('pages.admin.system.file-upload.index',compact('data'));
}
public function create(){
return view('pages.admin.system.file-upload.create');
}
public function store(Request $request){
$this->validate($request, [
'filename' => 'required',
'filename.*' => 'mimes:doc,pdf,docx,zip'
]);
if($request->hasfile('filename')) {
foreach($request->file('filename') as $file) {
$name=$file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$file->move(public_path().'/system/', $name, $extension);
$data[] = $name;
}
}
$file= new File();
$file->filename=json_encode($data);
$file->save();
session()->flash('save', 'Your files has been successfully added');
return view('pages.admin.system.file-upload.index');
}
下一步该怎么做?我需要在FileStorage.php中配置一些代码吗?这个$file->move(public_path().'/system/', $name, $extension);
的正确路径应该是什么?
答案 0 :(得分:0)
让我们首先查看public_path()返回项目根目录中公用文件夹的路径。这是因为出于安全原因,通常您不应该在该文件夹外进行写操作。 有多种方法可以覆盖它,但我建议您只需在该桌面上创建一个指向该文件夹的链接。您可能必须管理权限,以便该特定用户可以访问公用文件夹的内容(最好仅访问该文件夹)。
此外,“桌面”是用户家中的文件夹,它取决于您使用的桌面管理器(KDE,Gnome等),因此,如果要在每个用户的桌面中写入数据,您将不得不复制数据,这不是一个好主意。
因此,我将文件放在公共文件夹子文件夹中,并在需要时将其指向一个符号链接。