我正在尝试使用此软件包 https://vuejsexamples.com/a-beautiful-vue-component-for-image-cropping-and-uploading/ 但是然后我想知道如何将图像保存在文件夹中。
我正在尝试在php中执行此操作,以便以后可以轻松使用该路由,但是如果更简单,也可以使用JS。
public function uploadfile(Request $request){
$img = $request->img;
$newlocation = $request->newlocation;
$filename = $request->filename;
$img = str_replace('data:image/png;base64,', '', $request->img); //I tried with and without this
return file_put_contents ($newlocation . "/" . $filename , $img );
}
我实际上在公共文件夹中获得了一个图像,但是内容绝对不是我想要的:) image.jpg包含文本C:\ Users \ usr \ AppData \ Local \ Temp \ phpEE72.tmp
答案 0 :(得分:1)
我发现此链接在上传图片时非常有用: https://hdtuto.com/article/laravel-57-image-upload-with-validation-example
在我的控制器中,经过验证后,我会有类似的内容,它允许使用不同的图像文件类型,例如png和jpg:
$name = $request->input('name');
$getimageName = $name.'.'.$request->image->getClientOriginalExtension();
$request->image->move(public_path('filelocation'), $getimageName);
在我的filesystems.php文件中:
'disks' = > [
'filelocation' => [
'driver' => 'local',
'root' => public_path().'/foldername',
'url' => env('APP_URL').'/public/foldername',
'visibility' => 'public',
]
]
答案 1 :(得分:0)
这是文件名的字符串。在后台,PHP通过放置在temp目录中来处理所有上载到服务器的文件。由您决定要对其进行处理。您需要做的就是首先阅读文件的内容:
A/B
没有您的str_replace。
您应该考虑按照https://laravel.com/docs/5.8/filesystem#file-uploads中的建议,以更Laravel的方式执行此操作,但要回答最直接的问题,则需要file_get_contents。