web-dev-qa-db-ja.com

介入画像:元のファイル名と拡張子を持つURLから直接画像を保存しますか?

リモートサーバーから画像を取得するときにファイル名を取得する方法そして、どのように元のサイズとファイル名で保存しますか?

// Take remote image
$img = Image::make('http://image.info/demo.jpg');
// how to save in the img/original/demo.jpg
$img->save(????);

私は介入を使用して、http://image.intervention.io/api/make )を使用して、CakePHP 3イメージの動作を構築します、リモートサーバーからの簡単なアップロードを提供し、元の画像を将来の操作のソースとして保持したいと考えています。

[〜#〜]編集[〜#〜]

私は尋ねます、の名前を返すIntervention Imageメソッドはありますか?リモートサーバーから取得したときのファイル。私はphp copy()を知っています。CakePHPFileユーティリティを使用することもできますが、リモートファイルに対して重複するリクエストが発生します。

13
Salines

response()は、Salinesが要求していたような元のファイル名を返しません。これはうまくいくはずです

$path = 'https://i.stack.imgur.com/koFpQ.png';
$filename = basename($path);

Image::make($path)->save(public_path('images/' . $filename));
28
F. johns

make();およびresponse();メソッドを使用して簡単に行うことができます。以下の私のコードを確認してください。

allow_url_fopenリモートイメージを取得するには有効にする必要があります。

プロフィール写真が表示されます。 Laravel Frameworkで使用しない場合は、returnをechoに置き換えてください。

$img = Image::make('https://i.stack.imgur.com/koFpQ.png');
header('Content-Type: image/png');
return $img->response();

役に立ったら私の返信を助けて賛成してくれることを願っています

さらにサポートが必要な場合は、質問してください。

3
CDF