我有一个应用程序,我必须通过循环上传文件。它上传了第一个文件,但它给出了一个错误,file "" does not exist.
以下是我获取文件的数组。
以下是错误的跟踪。
知道我错过了什么或可能是什么问题?
更新
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);
}
答案 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);
}
}
}