首页 > 解决方案 > 如何在php中提交自定义输入文件类型数据?

问题描述

我无法将文件数据发送到表单action页面。我正在使用 Laravel 8。

<label for='inputProductDescription' class='form-label'>Product Images</label>
<input id="fancy-file-upload" type="file" name="files[]" accept=".jpg, .png, image/jpeg, image/png" multiple>

使用jquery.fancy-fileupload.js,这个 jquery 我的动作文件代码:

function add_product(Request $req) {
    $images = $req->file('file');
    if($req->hasFile('file')):
        foreach ($images as $item):
            $var = date_create();
            $time = date_format($var, 'YmdHis');
            $imageName = $time . '-' . $item->getClientOriginalName();
            $path = $item->move(base_path() . '\public\assets\upload\images', $imageName);
            $arr[] = $imageName;
        endforeach;
    endif;

    return $imageName;
}

当我上传图片时,$imageName给我一个错误,它没有定义。

标签: phphtmllaravellaravel-8

解决方案


将 $imageName 属性如 global 声明到方法中。

  $imageName = null;
  $images = $req->hasFile('file') ? $req->file('file') : null;
   if($images)
      foreach ($images as $item)
        $time = now()->format('YmdHis');
        $imageName = $time . '-' . $item->getClientOriginalName();
        $path=  $item->move(base_path() . '\public\assets\upload\images', $imageName);
        $arr[] = $imageName; // seems this is unnecessary line of code
      endforeach;
    endif;


   return $imageName;

推荐阅读