Php 使用class Storage Laravel 5.2上载文件/图像
首先,我很抱歉我的英语不好 我想使用classPhp 使用class Storage Laravel 5.2上载文件/图像,php,image,laravel,laravel-5,Php,Image,Laravel,Laravel 5,首先,我很抱歉我的英语不好 我想使用classStorage将文件/图像从驱动程序上载到项目目录。我希望每个文件/图像都能上传/移动到我的public/img目录。我在视图和post控制器上使用Form::file('img'),我写了这个 $img = Input::file('img'); if ($img !== null) { $filename = $img->getClientOriginalName(); Storage:
Storage
将文件/图像从驱动程序上载到项目目录。我希望每个文件/图像都能上传/移动到我的public/img
目录。我在视图和post控制器上使用Form::file('img')
,我写了这个
$img = Input::file('img');
if ($img !== null) {
$filename = $img->getClientOriginalName();
Storage::disk('uploads')->put('filename', $filename);
$jenis->img = $filename;
}
'uploads' => [
'driver' => 'local',
'root' => public_path() . '/img',
],
在我的config/filesystem
中,我写了这个
$img = Input::file('img');
if ($img !== null) {
$filename = $img->getClientOriginalName();
Storage::disk('uploads')->put('filename', $filename);
$jenis->img = $filename;
}
'uploads' => [
'driver' => 'local',
'root' => public_path() . '/img',
],
但是,在我的public/img
目录上没有发生任何事情,那里没有新的文件/图像。
你能帮我一下我的密码有什么问题吗?
我希望你们能帮我用另一种好方法在laravel中上传文件/图像看起来你的问题是你没有存储文件,你引用的是文件名而不是内容 试试这个:
Storage::disk('uploads') -> put($filename, file_get_contents($img -> getRealPath()));
在文件系统文件中,我以以下方式配置映像目录:
'uploads' => [
'driver' => 'local',
'root' => public_path("/img"),
],
我认为你可以用你的方式,但这是另一点
要从视图中获取文件,应使用file::get Laravel函数:
$filename = $img->getClientOriginalName();
Storage::disk('uploads')->put($filename, \File::get($file));
这样就足够了,您可以使用文件系统中指定的目录中上载的文件名保存该文件。需要帮助,谢谢它能工作,但我真的不知道在该put()上发生了什么。你能给我解释一下吗?Thanks@DarmaKurniawanHarefa传递给
put
的第一个参数是文件的完整路径(因为您已经在配置中设置了默认文件夹,如果不想将其放在子文件夹中,则可以将其作为文件名)。第二个参数是文件的内容。因此,使用phpfile\u get\u contents
函数,您将文件的内容传递到存储put
方法。输入文件上的getRealPath
方法传递已上载到服务器的临时文件的真实路径。完美!谢谢:谢谢,但是班级档案对我不起作用。需要定义/使用文件类吗?这不是必需的,但请尝试以这种方式定义:'use illumb/Contracts/Filesystem/Filesystem'。无论如何,laravel显示了什么错误?\File::get($File);那是文件还是img?
if ($request->hasFile('original_pic')) {
$original_pic = $request->file('original_pic');
$file_extension=$original_pic>getClientOriginalExtension();
$filename = time() . '.' . $file_extension;
# upload original image
Storage::put('ArticlesImages/' . $filename, (string) file_get_contents($original_pic), 'public');
# croped image from request.
$image_parts = explode(";base64,", $request->input('article_image'));
$image_base64 = base64_decode($image_parts[1]);
Storage::put('ArticlesImages/croped/' . $filename, (string) $image_base64, 'public');
# get image from s3 or local storage.
$image_get = Storage::get('ArticlesImages/croped/' . $filename);
# resize 50 by 50 1x
$image_50_50 = Image::make($image_get)
->resize(340, 227)
->encode($file_extension, 80);
Storage::put('ArticlesImages/1x/' . $filename, (string) $image_50_50, 'public');
$file_url = Storage::url('ArticlesImages/croped/' . $filename);
return response()->json(['success' => true, 'filename' => $filename, 'file_url' => $file_url], 200);
}