bugfix> php > 投稿

画像をグレースケールに変換してからダウンロードしようとしていますララヴェル しかし、このエラーが発生するたびに

The file "" does not exist

ここでこのエラーが発生する理由がわからないのは私のコードです。

$file = public_path() . "/large/s/" . $sheet[0]->sheet_f_id . '-s.jpg';
$image = Image::make($file);
$grayScale = $image->greyscale();
return Response::download($grayScale);

$file をダンプするとき変数このような応答を取得しました。

"D:\xampp\htdocs\wikistaging\public/large/s/03-02-05-025-s.jpg"

しかし、それでも私はなぜそれが起こっているのかというエラーを私に与えています。どんな助けも素晴らしいでしょう。

回答 2 件
  • ダウンロードする場合は、まず作成したファイルを保存し、ダウンロードするパスを指定する必要があります。これが実際の例です

    $img_name=$sheet[0]->sheet_f_id . '-s.jpg';
    $destination_path=public_path() . "/large/s/";
    $file = $destination_path.$img_name;
    $image = Image::make($file);
    $image->greyscale()->save($destination_path.'gray-'.$img_name);
    return Response::download($destination_path.'gray_'.$img_name);
    
    

    また、削除できるファイルを保持したくない場合は、最後の行を下の行に置き換えます。

    return Response::download($destination_path.'gray_'.$img_name)->deleteFileAfterSend(true);
    
    

    それがあなたのために働くことを願っています。

  • 呼び出し後に画像を保存する必要がありますgreyscale()。 あなたはそれを試すことができます:

    $filePath = public_path() . "/large/s/" . $sheet[0]->sheet_f_id . '-s-test.jpg';
    $image->greyscale();
    $image->save($filePath);
    
    

あなたの答え