【问题标题】:preg_replace error at the time of upload multiple image in laravel在 laravel 中上传多张图片时 preg_replace 错误
【发布时间】:2016-06-01 17:34:09
【问题描述】:

在 laravel 中上传多张图片时出错。

HTML 代码:-

<div class="form-group">
<label for="title">Art Gallery</label>
 <input type="file" name="art_image[]" id="art_image" value="{{old('art_image') }}"  accept="image/*"  multiple="multiple">
</div>

:- 控制器代码

if ($request->hasFile('art_image')) {
   $fileImage1 = $request->file('art_image');
   $StoreName = array();
   foreach ($fileImage1 as $files) {
         $filename1 = time().rand(1,100).".".$files->getClientOriginalExtension();
     $StoreName[] = $filename1;
     if($files->move(ART_IMAGE_DIR_PATH, $filename))
         {
              $data['art_image'] = $filename1;
           }
        }
   $artdetail_model->art_image = serialize($StoreName);
     }

我得到以下错误

preg_replace():参数不匹配,pattern是字符串而replacement是数组

【问题讨论】:

  • 你为什么不从你的代码复制粘贴,而不是重写它?我猜在您的原始代码中有一个未初始化的 $filename 变量是 $filename1
  • 从哪里调用 preg_replace?错误堆栈是什么?
  • helpers.php 第 671 行中的 ErrorException:preg_replace():参数不匹配,模式是字符串,而替换是 helpers.php 第 671 行中的数组 HandleExceptions->handleError('2', 'preg_replace (): 参数不匹配,pattern 是一个字符串,而替换是一个数组', '/var/www/html/MuseumManagement1/vendor/laravel/framework/src/Illuminate/Support/helpers.php', '671', array( 'search' => '\?', 'replace' => array(null, array(null), '11'), 'subject' => '更新art_detail set art_cover_image = , art_image = ?其中id = ?', 'value' => array(null)))

标签: php laravel laravel-5 preg-replace image-uploading


【解决方案1】:

问题是当您提交多张图片时,它会变成图片数组而不是单个字符串。所以它试图将一个数组而不是它期望的字符串保存到数据库中。如果你做到了,那么你的照片变量是一个 json_encoded 图片数组,那么你应该能够保存它们。

希望这会有所帮助。

【讨论】:

  • 我将序列化图像数组存储在数据库中。消除此错误的解决方案是什么?
猜你喜欢
  • 1970-01-01
  • 2020-03-23
  • 2021-12-22
  • 1970-01-01
  • 2019-09-05
  • 2018-04-28
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
相关资源
最近更新 更多