私がしようとすると、以下のようにファイルをアップロード: Laravel 5.2ファイルアップロード
$name = $img->getClientOriginalName();
$fullPath = Product::getUploadPath(); // Returns public_path(); with custom directory appended
$uploaded = $img->move($fullPath, $name);
は、私は以下のエラーが表示されます。
Could not move the file
"/private/var/folders/1l/fxl7spqj2p113fpffm3k0sy00000gn/T/phpIgpWGy" to
"/dir/subdir/subsubdir/subsubdir/public/backend/images/products/pic.jpg"()
はinterestsakeのために、私はイメージのために全体の解決パスを構築し、これを引数としてmove()
メソッドに渡しました。以前に動作していたメモリが使用されました。
$uploaded = $img->move($fullPath.'/'.$name);
んが、例外がスローされていない、しかし、アップロードされたファイルは、今ディレクトリになります:
"/dir/subdir/subsubdir/subsubdir/public/backend/images/products/pic.jpg/"
私は私の画面を通じて私の拳を駆動するに非常に近いです。
睡眠不足になる可能性がありますが、私はこのコードが既知の問題なしで以前に動作していたことを確信しています。しかし、最近、画像のサイズを変更するための介入プラグインをインストールしましたが、デバッグ中、私のApp Kernelから。 –
掘りすぎていないと、ターゲットディレクトリの権限をチェックしましたか? 'UploadedFile'クラスの' move() 'メソッドはPHPの' move_uploaded_file() '関数を呼び出します。彼らはその呼び出しからのエラーを抑制しますが、あなたが見ているカスタムメッセージで 'FileException'を投げます。 2番目の試行でディレクトリとして作成されるファイルは、最初のパラメータがターゲットディレクトリであり、2番目の名前がファイル名であるため意味があります。ファイル名はなく、ディレクトリのみが解決されます。 – stratedge
ディレクトリが存在しない場合にlaravelが 'move()'が呼び出されたときにパスを作成する可能性があります。また、ディレクトリを作成すると、そのディレクトリは空ではなく、一時的に存在するPHPのように見えます。 –