как удалить файлы из базы данных и папки - PullRequest
0 голосов
/ 03 июля 2019

привет, я хочу удалить файл из базы данных и ее папки public/files Я написал некоторый код, но это только удалить из базы данных, а не из папки

код:

        public function destroy($id)
        {
            $file = File::find($id);
            $file->delete(public_path('files'));

            $file->delete();

            return redirect('file')->with('success', 'Data is successfully deleted');
        }

my db table:

        Schema::create('files', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('filename');
            $table->timestamps();
        });

как это сделать

Ответы [ 3 ]

0 голосов
/ 03 июля 2019

Используйте функцию Unlink() для удаления из каталога и запрос БД для удаления из БД.

public function destroy($id)
    {
        $file = File::find($id);
        $file_path = $file->path; //Please use that variable ehich you are using to save file path.
        unlink($file_path); //it will looks like file/path/image.png

        $file->delete();

        return redirect('file')->with('success', 'Data is successfully deleted');
    }

Надеюсь, это сработает.Спасибо!

0 голосов
/ 03 июля 2019

PHP unlink функция используется для удаления файла из каталога

Шаг 1: Сначала вам нужно выбрать путь к файлу из БД.

Шаг 2: используйте unlink ('path_name'), чтобы удалить файл из каталога

Шаг 3: Удалить строку из БД

 public function destroy($id){

    $FilePath=DB::table('files')->select('filename')->where('id',$id)->first();

    $path = public_path()."/uploads/".$FilePath->filename;
    unlink($path); // Delete From Folder

    $result=DB::table('files')->where('id',$id)->delete();  // Delete From DB

    return redirect('file')->with('success', 'Data is successfully deleted');
}

Обновление

unlink - это функция PHP. В Laravel используйте File::delete() .

Пример: File::delete($filename);

должно включать use File; в вашем файле

0 голосов
/ 03 июля 2019
    public function destroy($id)
    {
            $file = File::find($id);
            unlink(public_path('file'));

            $file->delete();

            return redirect('file')->with('success', 'Data is successfully deleted');
    }
...