当前位置: 首页 > 知识库问答 >
问题:

如何更新文件在laravel 5不丢失以前的文件

商同
2023-03-14

我有一个包含多个输入的表单,下面是代码:

@if (isset($jurnal))
    {!! Form::hidden('id', $jurnal->id) !!}
@endif

@if ($errors->any())
    <div class="form-group {{ $errors->has('title') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
    {!! Form::label('title', 'Title :', ['class' => 'control-label']) !!}
    {!! Form::text('title', null, ['class' => 'form-control']) !!}
    @if ($errors->has('title'))
        <span class="help-block">{{ $errors->first('title') }}</span>
    @endif
</div>

@if ($errors->any())
    <div class="form-group {{ $errors->has('author') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
    {!! Form::label('author', 'Author :', ['class' => 'control-label']) !!}
    {!! Form::text('author', null, ['class' => 'form-control']) !!}
    @if ($errors->has('author'))
        <span class="help-block">{{ $errors->first('author') }}</span>
    @endif
</div>

@if ($errors->any())
    <div class="form-group {{ $errors->has('file') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
    {!! Form::label('file', 'File Jurnal (PDF) :') !!}
    {!! Form::file('file') !!}
    @if ($errors->has('file'))
        <span class="help-block">{{ $errors->first('file') }}</span>
    @endif
</div>

<div class="form-group">
    {!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!}
</div>

这里是控制器:

private function uploadPDF(JurnalRequest $request)
    {
        $file = $request->file('file');
        $ext  = $file->getClientOriginalExtension();

        if ($request->file('file')->isValid()) {
            $pdf_name   = date('YmdHis'). ".$ext";
            $upload_path = 'pdfupload';
            $request->file('file')->move($upload_path, $pdf_name);

            // Filename untuk database --> 20160220214738.pdf
            return $pdf_name;
        }
        return false;
    }

    public function store(JurnalRequest $request)
    {
        $input = $request->all();

        //Input PDF
        if ($request->hasFile('file')) {
            $input['file'] = $this->uploadPDF($request);
        }

        //Insert data jurnal
        $jurnal = Jurnal::create($input);

        return redirect('jurnal');
    }

包括文件在内,这些数据都是可编辑的,我想知道的是更新功能是什么样子的?例如,用户想更新标题或作者数据,但不想更新文件,如何在不丢失上一个文件的情况下更新?我是拉威尔5号的新手,我被困在这里,请帮忙,谢谢。

这是我创建的更新函数,如果我更新所有数据,它可以正常工作,如果我更新文件之外的任何内容,它将不起作用,它总是需要我上传一个新的

公共函数更新(Jurnal$Jurnal,JurnalRequest$request){$input=$request-

// Check is there a new file in the form?
if ($request->hasFile('file')) {
    // Delet old file
    $this->hapusPDF($jurnal);

    // Upload new file
   $input['file'] = $this->uploadPDF($request);
}

// Update jurnal di tabel jurnal
$jurnal->update($input);

return redirect('jurnal');

}

共有1个答案

庄智
2023-03-14

简单的逻辑是,如果用户想要更新文件,他们可能应该更新文件并且文件应该呈现在请求上。因此,只有更新文件,如果文件是在请求和有效。

if( $request->hasFile('file') && $request->file('file')->isValid()) 

对其他属性做同样的事情,如作者,标题...

 类似资料:
  • 我从Linux服务器(CentOS)中删除了几个Tomcat安装。在我安装Tomcat 8之后。现在当我尝试启动Tomcat 8()时,它会出现以下错误: 似乎我没有正确删除之前安装的tomcat。我怎么才能让这个工作。帮助。 使现代化

  • 我已经用UUID作为每个文件名的密钥将文件上传到s3 bucket,我要求将文件密钥作为存储的UUID,但当下载时,我需要将下载的文件名作为实际文件名,例如:foo.png aws S3-0E8221B9-9BF4-49D6-B0C0-D99E86F91F8E.png上存储的文件下载文件名应为:foo.bar 我尝试过设置Content-Disposition元数据,但在下载文件时仍然包含UUID

  • 问题内容: 我有一个xml文件,调用data.xml就像下面的代码。该项目可以从客户端运行,没有问题,它可以读取xml文件。我现在遇到的问题是我想编写一个可以更新开始日期和结束日期的函数。我不知道如何开始。帮助将不胜感激。 我的main.java 问题答案: 首先加载XML文件… 现在,有几种方法可以执行此操作,但简单来说,您可以使用xpath API查找所需的节点并更新其内容 然后保存回文件…

  • 我一直试图通过试用一些东西来理解Android Studio IDE是如何工作的。我从Google repo导入了一个示例项目--Android DataLayer,它附带了一些配置好的模块。然后我删除了.idea文件夹,想重新打开这个项目,但是在侧边栏面板中,我看到的只是空虚。 我可以做什么来重新创建项目?

  • 我为序列分类(二进制)创建了一个LSTM网络,其中每个样本有25个时间步和4个特征。以下是我的keras网络拓扑: 上面,密集层之后的激活层使用softmax功能。我使用二进制交叉熵作为损失函数,Adam作为优化器来编译keras模型。使用batch_size=256、shuffle=True和validation_split=0.05对模型进行训练,以下是训练日志: 到目前为止,我还尝试使用了r

  • 我正在使用JavaParser并关注它的Wiki。问题是,即使我更改了方法的名称并向其添加了一个参数,文件也不会更新。换句话说,更改不会被保存。当我更改后的,它会打印出更改,但这些更改根本不会影响源文件。 有类似于编译单元的东西吗。update()还是我遗漏了什么? 我在维基上使用的例子是: 编辑:以下是解决方案;在下面的行中添加; 在下面的行中更改为使用特殊字符(例如“ş,ö,ü…”) 到