php - 无法在 Laravel 上上传多张图片
问题描述
假设我要上传 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>
解决方案
问题是我使用的是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');
}
推荐阅读
- python - 尝试获取当前播放的歌曲时,Spotify API 以“无效的用户名”响应
- java - Selenium 在我发送文本输入时处理下拉建议?
- android - 如何附加到CSV文件android studio
- c++ - C++20 模块相对于预编译头文件在编译速度方面的优势?
- linux - Bash:尽管存在目录,但“没有这样的文件或目录”
- c - 为什么一个 exec 应该“sh -c a.out”而不是 a.out 本身?
- python - 拆分训练测试数据集将相似的值保持在一起
- raid - RAID存储结构
- google-cloud-platform - 如何在图表中查看 BigQuery 表的总行数?
- mysql - MySQL 只使用一张表返回一行