0

私は私のルートを持っています:

Route::get('/file', array(
    'as' => 'files',
    'uses' => 'fileController@getFileUpload'
));

Route::post('/uploadfile', array(
    'as' => 'uploadfile',
    'uses' => 'fileController@postfileupload'
));

これで、/file ルートに uploadifive をセットアップし、投稿リクエストを /uploadfile に送信しました

uploadfile のコードは次のとおりです。

    $file = Input::file('file_upload'); 
    $destinationPath = 'files/CDN/'.str_random(8);
    echo $filename = $file->getClientOriginalName();
    $extension =$file->getClientOriginalExtension();  
    $uploadSuccess = Input::file('file')->move($destinationPath, $filename);

しかし、常に 500 を取得しています (内部サーバー エラー)

ディレクトリ CHMOD が 0777 であることを確認しました。上記のコードを /uploadfile から削除して配置するときと同じように、正しいルートにリンクしています。

echo 200;

成功を返します。

ブレード フォーム タグも追加しようとしましたが、uploadive は実際にはフォーム要素にまったく依存しません。AJAXで投稿します。

4

1 に答える 1

0

ブレードLaravelアプローチを介して通常のファイル投稿フォームからの応答のvar_dumpを見ると、最終的に回避策が得られました.Uploadfileオブジェクトがファイルの名前(フォームフィールドで指定)で作成されていることがわかりますが、一方でUploadifive を介して同じリクエストを送信すると、そのファイルのオブジェクトを保持する [FileData] というノードを含む配列が送信されることがわかります。そのため、基本的には、そのオブジェクト ポインターを $file 変数に割り当てる必要があります。完全に:

$data               = Input::all(); 
$file               = $data['Filedata']; 
$destinationPath    = public_path().'files/'.str_random(8);
$filename           = $file->getClientOriginalName();
$extension          = $file->getClientOriginalExtension();  
$uploadSuccess      = $file->move($destinationPath, $filename);
if( $uploadSuccess ) {
   return Response::json('success', 200);
} else {
   return Response::json('error', 400);
}

魅力のように動作します:)

于 2014-12-31T14:02:54.933 に答える