0

我想根据我的来获取文件applications_id,我想在引导文件输入中看到它,我想删除它并用新文件替换。我该怎么做。以下是我尝试过的。任何人都可以帮助我。我被卡住了。

这是我的控制器函数 SoleProprietorController.php

    public function uploadImages(Request $request, $applications_id)
    {
       $applications = new Applications;

     //  $KRAPIN = Input::get('KRA_unique_field');
      $applications_id = Input::get('applications_id_unique_field');

    if ($request->hasFile('breg_cert')) {
       if ($request->file('breg_cert')->isValid()) {
                  // request()->breg_cert->move(public_path('breg_cert'), $imgName);
            // $imgName = basename($request->breg_cert->store(public_path('breg_cert')));
           $imgName = basename($request->breg_cert->move(public_path('breg_cert')));
           $applications->breg_cert = $imgName;
       }
      return response()->json(['uploaded' => '/breg_cert/'.$imgName]);
      }

    }

这是我的 web.php

Route::post('/uploadImages/{applications_id}', 'SoleProprietorController@uploadImages')->name('home');

这是我刀片中的引导文件

 <div class="col-md-4 mb-3">
 <label for="validationServer023">Upload Business Registration Document</label>
  <div class="form-group">
   <div content="{{ csrf_token() }}" class="input-group input-file" name="Fichier1">
    <input id="file-0a" name="breg_cert" value="" class="file" accept="text" type="file"> <br />

    </div>
 </div>   
</div>

<script>

    $("#file-0a").fileinput({
        initialPreview: [
            "<img src='/images/php' class='file-preview-image'>",
        ],
        showUpload: true,
        showRemove: true,
        showCaption: true,
        showPreview: true,
        showClose: false,
        autoOrientImage: true,
        showUploadedThumbs: false,
        uploadAsync: false,
        uploadUrlThumb: false,
        deleteUrl: "/public/KFS_Business_Registration_Certificates",
        uploadUrl: "/uploadImages/{applications_id}",
        // dataUrl: "/breg_cert/",
       // uploadUrl: '/public/KFS_Business_Registration_Certificates', // you must set a valid URL here else you will get an error
        theme: 'fa',
        uploadExtraData: function() {
            return {
                _token: "{{ csrf_token() }}",
            };
        },
        allowedFileExtensions: ['jpg', 'png', 'gif', 'pdf', 'jpeg'],
        overwriteInitial: false,
        maxFileSize: 500,
        maxFilesNum: 10,
        //allowedFileTypes: ['image', 'video', 'flash'],
        slugCallback: function (filename) {
            return filename.replace('(', '_').replace(']', '_');
        }
    });
</script>
4

1 回答 1

0

1.使用这样的代码来存储上传的文件并将其与您的应用程序相关联

if ($request->hasFile('breg_cert')) {
   if ($request->file('breg_cert')->isValid()) {
       $imgName = basename($request->breg_cert->store(public_path('breg_cert')));
       $applications->breg_cert = $imgName;
   }
}

https://laravel.com/docs/5.8/requests#storing-uploaded-files

要存储上传的文件,您通常会使用您配置的文件系统之一。UploadedFile 类有一个 store 方法,它将上传的文件移动到您的一个磁盘上,该磁盘可能是您本地文件系统上的一个位置,甚至可能是一个像 Amazon S3 这样的云存储位置。

store 方法接受相对于文件系统配置的根目录的文件存储路径。此路径不应包含文件名,因为将自动生成唯一 ID 作为文件名

  1. 要处理删除/替换,请创建相应的控制器方法和 POST 路由,然后将路由提供给 deleteUrl 选项。

在上述方法中,检查关联的文件名并取消链接。(实际代码取决于什么dd($request);输出)

  1. 要将存储的图像显示为预览添加选项 $("#file-0a").fileinput({
initialPreview: [
    "<img src='/images/path-to.jpg' class='file-preview-image'>",
],
于 2019-06-20T12:06:57.053 回答