7

私のローカル開発では、以下に示すコードを使用しています。これは完璧に機能します。

しかし、サイトを共有ホスティングにアップロードすると、ファイルのアップロード以外はすべて正常に機能しました。私はこのパスを取得し ->getRealPath()たときに、問題が に関係していることをすでに判断しました :dd();/data/sites/web/christophvhbe/tmp

私のホスティングには存在しません。しかし、一時的な画像が私のホスティングに保存されている場所を見つけましtmp/た。

->getRealPath()値を正しい値に変更するにはどうすればよいですか?

$fileName = time() . '-' . $request->file('foto')->getClientOriginalName();
$product->foto = $fileName;
$product->save();

$imagePath = '/images/producten/'. $fileName;

$image = Image::make($request->file('foto')->getRealPath())->fit(300)->save($imagePath);

Image/interventionパッケージを使用して画像をアップロードおよび保存しています。

4

2 に答える 2

4

あなたのアカウントのルートは/data/sites/web/christophvhbeである可能性が高く、それgetRealPathは完全に正確です (FTP に表示されるものはおそらくchrootedです)。その結果、あなた$imagePathは実際に問題です。

$imagePath = '/data/sites/web/christophvhbe/images/producten/'. $fileName;

または、さらに良いことに、Laravelbase_pathpublic_pathヘルパーを使用して、ホスティングを変更しても、パスが変更されても機能し続けるようにします。

$imagePath = public_path() . '/images/producten/' . $fileName;

エラー ログを調べてみると、サーバーのディレクトリにファイルを作成しようとしてパーミッション エラーが見つかる/imagesはずです。共有ホスティングでは、ファイルを作成したり、アクセスしたりすることは絶対にできません。

于 2015-06-22T02:02:05.590 に答える