Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 图像上载和调整大小功能不能正常工作_Php_Image_Laravel - Fatal编程技术网

Php 图像上载和调整大小功能不能正常工作

Php 图像上载和调整大小功能不能正常工作,php,image,laravel,Php,Image,Laravel,在我的laravel项目中,我有一个简单的调整图像大小的功能。它应该上传原始图像并制作缩略图 表单提交后,我得到了两张图片,但原始图片被放在了错误的目录中。这是我的控制器中的函数 if (Input::hasFile('image') && !Input::get('remove_image')) { $file = Input::file('image'); $filename = str_random(20); $i

在我的laravel项目中,我有一个简单的调整图像大小的功能。它应该上传原始图像并制作缩略图

表单提交后,我得到了两张图片,但原始图片被放在了错误的目录中。这是我的控制器中的函数

if (Input::hasFile('image') && !Input::get('remove_image')) {    
        $file = Input::file('image');
        $filename = str_random(20); 

        $image = new ImageResize($file);                    

        $original = $filename  . '.'. $file->getClientOriginalExtension();
        $thumb = $filename . '-thumb.' . $file->getClientOriginalExtension();

        $file->move(public_path() . '/uploads', $original);

        $imagePath = '/uploads/' . $original;
        $thumbPath = '/uploads/' . $thumb;

        $image->crop(200, 200);
        $image->save('uploads/' . $thumb);  

}
基本上,当我上传
image.jpg
时,我会得到两张图像
image.jpg
image thumb.jpg
。两幅图像都应保存在
上传
中,即
公共/上传
中,但仅保存缩略图


原始映像保存在
**引导**/uploads/
中。为什么要进入引导…目录?我在任何地方都没有提到它?

您可以尝试将
public\u path()
方法替换为
url('/')
。我不确定这是否有帮助,但我对公共路径(public_path())没有很好的经验


请尝试以下代码。

只保留要保存原始文件的目录。尝试更改移动图像的这条线

$file->move(public_path() . '/uploads', $original);
Image::make($avatar)->resize(250, 250)->save(public_folder('/uploads/'.$filename));
使用此选项(删除公共路径)


使用图像干预调整图像大小并保存图像

$file->move(public_path() . '/uploads', $original);
Image::make($avatar)->resize(250, 250)->save(public_folder('/uploads/'.$filename));

resize(调整大小)功能将调整图像大小,save(保存)功能将图像保存到uploads文件夹。给$filename变量指定一个所需的文件名。

是否也要保存
$original
?此行
$file->move(public_path()./uploads',$original)
保存原始文件,但保存方向错误尝试
打印(public_path())
检查其路径是否正确。
$file->move(public_path()。/uploads',$original)正在保存原始文件。我假设您已经检查过,以确保
public\u path()
指向您需要的目录。publick\u path()指向
/var/www/html/site/bootstrap1
,但它是错误的。。应该是
/var/www/html/site/
,我不知道怎么做。我以前没有在laravel中处理路径..替换“$file->move(public_path()./uploads',$original);”通过“$file->move(url('/')。/uploads',$original)`这是一个完整的url,比如
http://localhost/site/public/index.php/uploads
。。。这是不对的