2017-07-07 8 views
0

テーブルにファイルパスがあります。ファイルパスからイメージを作成し、新しい名前のファイルです。ファイルパスからイメージを複製し、名前を変更してlaravelの別のテーブルに保存します

私はファイルパスしか持っていないので、イメージオブジェクトを作成してgetClientOriginalExtension()メソッドを呼び出すことはできません。それをデータベースに保存します。私は、次のことを試してみました:

$img = $var->image_path; 
$file = file_get_contents($img); 
$filename = time() . '.' . $file->getExtension(); 

Image::make($file)->resize(300, 300)->save(public_path('/test' . $filename)); 

しかしスクリプトエラー:Call to a member function getExtension() on string何がファイルパスと正しい方法だろう、オブジェクトを作成し、ファイルの名前を変更し、右の拡張子が設定されていることを確認(多分外このqの範囲)、新しく作成したイメージを別のフォルダに保存し、新しく作成したイメージパスをデータベースに保存します。

私はそれが理にかなっていると思います。

更新:代わりにfile_put_contents()を使用する必要がありますか?

答えて

0

copy()を使用して各画像を繰り返して、画像を相対的に調整したかったことを達成しました。

$title = $var->name; 
$string = str_replace(' ', '-', $title); // Replaces all spaces with hyphens. 
$string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. 

copy($img, public_path('/test' . $string . time())); 

http://php.net/manual/en/function.copy.php

関連する問題