文件上传循环

时间:2016-02-16 14:57:21

标签: php laravel laravel-5.1 laravel-5.2

我有一个应用程序,我必须通过循环上传文件。它上传了第一个文件,但它给出了一个错误,file "" does not exist.以下是我获取文件的数组。

enter image description here

以下是错误的跟踪。

enter image description here

知道我错过了什么或可能是什么问题?

更新

for($i=0; $i <=count($form_data['image']['files'])-1; $i++) {

   $file = $form_data['image']['files'][$i];
   $file_name = $file->getClientOriginalName();

   $file->move("campaigns/$campaign->id/$package/images", $file_name);

}

1 个答案:

答案 0 :(得分:0)

最后修好了。这是我之前的控制器操作无法正常工作。

public function done(Request $request){
    $packages = ['instagram', 'facebook', 'twitter'];
    foreach($packages as $package){
       // this is the line which was creating the problem
       $form_data = $request['contents'][$package];
       for($i=0; $i <=count($form_data['image']['files'])-1; $i++) {
          $file = $form_data['image']['files'][$i];
          $file_name = $file->getClientOriginalName();
          $file->move("campaigns/$campaign->id/$package/images", $file_name);
       }
    }
}

要解决此问题,只需将请求变量分配给另一个变量即可。这是因为请求处理第一个循环中的文件,然后在下一次迭代中找不到其他属性的文件。

public function done(Request $request){
    $packages = ['instagram', 'facebook', 'twitter'];
    // Fixed it with this line
    $contents = $request['contents'];
    foreach($packages as $package){
       $form_data = $contents[$package];
       for($i=0; $i <=count($form_data['image']['files'])-1; $i++) {
          $file = $form_data['image']['files'][$i];
          $file_name = $file->getClientOriginalName();
          $file->move("campaigns/$campaign->id/$package/images", $file_name);
       }
    }
}