我正在laravel 5.8中进行自定义电子商务,我面临的问题是,当我上传产品图片时,它会在公共目录中以产品名称创建文件夹,并将产品图片放置到该文件夹中,但是产品名称太长或包含特殊字符laravel不会创建该文件夹,也不会上传任何图像,这是我用于上传图像的代码。
if ($request->file('logo')) {
$file = $request->file('logo');
$logo = $file->getClientOriginalName();
$file->move(public_path('Product Images/' . $request->name), $logo);
}
任何帮助将不胜感激。预先谢谢你。
答案 0 :(得分:0)
我认为您尝试的概念不是一个好主意。
1。)当您有很多图像时,不应将它们保存在一个文件夹中。如果单个文件夹中的图片过多,可能会出现问题。通常,您会生成图像的哈希并将其保存在文件夹结构中,例如:891904122.jpeg
到文件夹2/2/1/4/891904122.jpeg
。
那么您就不会遇到特殊字符的问题。
为此,Laravel具有出色的文件抽象性。
https://laravel.com/docs/5.8/filesystem https://github.com/laravel/framework/blob/5.8/src/Illuminate/Http/FileHelpers.php#48
看看hashName
。
2。)第二个是您应该在文件夹名称中避免空格。在系统之间复制某些文件夹时,可能会遇到麻烦。
3。)有很多出色的Shop-System,例如基于Symfony的Sylius或基于Laravel的Aimios。还有很多。您可以看看他们如何解决问题。