无法在Laravel上上传多个图像

时间:2019-07-02 17:56:08

标签: php laravel image-processing intervention

假设我要上传3张图片a.jpeg,b.jpeg和c.jpeg

我已经成功选择了要上传的图像。 将它们发送到控制器,并使用print_f()检查它们是否确实在控制器中。他们是。

然后,当我检查img文件夹时,只有c.jpeg成功上传,而其余部分则没有成功上传。

这是什么原因?

// AdminController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Http\Redirect;
use Image;

// Route 
  Route::post('/upload', 'AdminController@store')->name('upload');

// AdminController@store:

    public function store(Request $request){
      if ($request->hasfile('images')) {
        foreach ($request->images as $image) {
          $name = time() . '.' . $image->getClientOriginalExtension();
          print_r($name."<br>"); // to see if they're actually passed.
          Image::make($image)->save(public_path('img/new/'. $name));
        }

      }
      return('done');
    }


    <form action="{{ route('upload') }}" method="post" enctype="multipart/form-data">
      <div class="form-group">
        <label for="exampleInputFile">File input</label>
        <input type="file" name="images[]" id="exampleInputFile" multiple />
      </div>
      {{ csrf_field() }}
      <button type="submit" class="btn btn-default">Submit</button>
    </form>

1 个答案:

答案 0 :(得分:0)

问题是我使用的是time()函数,而不是rand()或返回随机值的任何类似函数。

所以现在的代码应该像这样:

public function store(Request $request){
  if ($request->hasfile('images')) {
    foreach ($request->images as $image) {
      $name = rand() . '.' . $image->getClientOriginalExtension();
      print_r($name."<br>"); // to see if they're actually passed.
      Image::make($image)->save(public_path('img/new/'. $name));
    }

  }
  return('done');
}