如何在php中提交自定义输入文件类型数据?

Posted

技术标签:

【中文标题】如何在php中提交自定义输入文件类型数据?【英文标题】:How to submit custom input file type data in php? 【发布时间】:2021-11-03 02:04:48 【问题描述】:

我无法将文件数据发送到表单的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 给我一个错误,它没有定义。

【问题讨论】:

【参考方案1】:

在方法中声明 $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;

【讨论】:

现在我没有显示这个错误。我正在上传图像,但没有得到这个变量值 ($imageName)。当我不在输入字段中使用 id(id="fancy-file-upload") 时,代码工作正常。

以上是关于如何在php中提交自定义输入文件类型数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置输入类型文件的值并存储在php中的数据库中?

在 iOS 中注册自定义文件类型

PHP 文件的自定义 MIME 类型

在 React 中创建自定义输入类型文件按钮

如何在自定义帖子类型上使用Woocommerce的二级图像上传Metabox?

以自定义帖子类型显示标签面板