Javascript Laravel-删除表单中上载的文件
这是我在这里的第一条信息,如果以前有人问过这个问题,我表示歉意 还有,对不起我的英语,我是法国人 我正在构建一个Laravel应用程序,在我的一个表单中,我允许用户上传文件,但这不是必需的 然而,一旦上传,就无法在我的编辑或上传路线中删除它 假设一个用户上传了一个文件并改变了主意,他们怎么能删除它呢 以下是表单的屏幕截图: 这是我的控制器:Javascript Laravel-删除表单中上载的文件,javascript,laravel,Javascript,Laravel,这是我在这里的第一条信息,如果以前有人问过这个问题,我表示歉意 还有,对不起我的英语,我是法国人 我正在构建一个Laravel应用程序,在我的一个表单中,我允许用户上传文件,但这不是必需的 然而,一旦上传,就无法在我的编辑或上传路线中删除它 假设一个用户上传了一个文件并改变了主意,他们怎么能删除它呢 以下是表单的屏幕截图: 这是我的控制器: public function update(Request $request, $id) { $this->validate($reque
public function update(Request $request, $id)
{
$this->validate($request, [
'title' => 'required|string',
'timing' => 'required',
'file' => 'file',
'lesson_id' => 'required',
'video' => 'required',
'description' => 'required'
]);
$lecture = Lecture::findOrFail($id);
$lecture->title = $request['title'];
$lecture->timing = $request['timing'];
$lecture->lesson_id = $request['lesson_id'];
$lecture->video = $request['video'];
$lecture->description = $request['description'];
// Fichier
$file = $request->file('file');
if ($request->hasFile('file')) {
$fileName = $file->getClientOriginalName();
$fileExtension = $file->getClientOriginalExtension();
$destinationPath = public_path('chapitres-files');
$file->move($destinationPath, $fileName);
$lecture->file = 'chapitres-files/' . $fileName;
}
那么,有人能解释一下在我的控制器、视图文件和web.php中到底要做什么吗
多谢各位
加斯托诺您有两个主要场景要涵盖:
场景1:从表单对象中删除文件 我将把这个问题作为一个起点,因为我不是Javascript专家
场景2:从存储中删除文件 如注释中所述,在这种情况下,您将希望作为单独的操作而不是作为编辑/更新代码的一部分删除该文件 这使你的破坏性行动与建设性行动分开 我的做法是:
FileController
)创建一个API控制器,其上有一个destroy
方法API/files/destroy/{file\u id}
)注意:我还建议在“删除”按钮上添加一个确认步骤(如模式或警报),以使用户确认他们确实想要删除文件,因此如果您想在上传文件之前从表单中删除文件,则需要使用客户端代码来执行此操作。您可能希望在问题上添加
javascript
标志,以便它出现在正确的提要中。另外,你的英语真的很好,不需要道歉;)您是从请求数组中删除还是从视图中删除?
我建议创建一个新的路由和控制器,专门用于删除映像,而不是尝试在更新
方法中添加其他逻辑来删除映像。谢谢大家。我想将其从更新或编辑页面的视图中删除@Rwd:所以我可以在一个表单中创建一个表单,并且在同一页面中有两个控制器?对不起,我很困惑。。。无论如何谢谢你!谢谢大家。我将尝试探索您的解决方案,然后再与您联系。再次感谢。