質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

3回答

8580閲覧

Laravelで容量の大きいファイルをアップロードした際にエラー

sarada661

総合スコア16

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/12/13 14:28

編集2017/12/20 09:32

Laravelで500MB近くのファイルを扱う必要があり、ファイルアップロード機能を作成したのですが、300MBを超えるファイルをアップロードしようとすると、Requestから「The file failed to upload.」のエラーを返されてしまいアップロードができません。まず、どこに原因があるのか調査するのもままならないレベルです。

該当のコード

fileup.blade.php

php

1<form method="post" action="{{ action('FileupsController@store') }}" enctype="multipart/form-data"> 2 {{ csrf_field() }} 3 <input type="file" name="file"> 4 @if ($errors->has('file')) 5 {{ $errors->first('file') }} //ここでThe file failed to upload. 6 @endif 7 <input type="submit" value="アップロード"> 8</form>

FileRequest.php

php

1namespace App\Http\Requests; 2 3use Illuminate\Foundation\Http\FormRequest; 4 5class FileRequest extends FormRequest 6{ 7 8 public function authorize(){ 9 return true; 10 } 11 12 public function rules(){ 13 $rules = array( 14 'file' => 'required|mimes:jpg,jpeg,png,gif,pdf,mp4,MP4,vtt,txt' 15 ); 16 return $rules; 17 } 18}

FileController.php

php

1<?php 2namespace App\Http\Controllers; 3 4use Illuminate\Http\Request; 5use Illuminate\Support\Facades\Auth; 6use App\Http\Requests\FileRequest; 7use Storage; 8 9class MediasController extends Controller 10{ 11 public function store(MediaRequest $request, $is_modal = false) { 12 $file = $request->file('file'); 13 $extension = $file->extension(); 14 $filename = date('YmdHis').'.'.$extension; 15 $flag = $request->file->storeAs('public/',$filename); 16 // アップロード失敗 17 if(!$flag) { 18 // ファイルの削除 19 Storage::disk('local')->delete('public/'.$filename); 20 return back()->with('flash_message', 'Media Failed!')->withInput(); 21 } 22 return back()->with('flash_message', '最高にかっこいい'); 23 } 24}

試したこと

ファイルサイズの問題から、php.iniをそれぞれめちゃあげました
memory_limit = 1G
post_max_size = 2G
upload_max_filesize = 2G

.htaccessではファイルのアップロードに関する指定はしておりません。

よろしくお願いします。

filesystems.php

PHP

1<?php 2 3return [ 4 5 /* 6 |-------------------------------------------------------------------------- 7 | Default Filesystem Disk 8 |-------------------------------------------------------------------------- 9 | 10 | Here you may specify the default filesystem disk that should be used 11 | by the framework. The "local" disk, as well as a variety of cloud 12 | based disks are available to your application. Just store away! 13 | 14 */ 15 16 'default' => 'local', 17 18 /* 19 |-------------------------------------------------------------------------- 20 | Default Cloud Filesystem Disk 21 |-------------------------------------------------------------------------- 22 | 23 | Many applications store files both locally and in the cloud. For this 24 | reason, you may specify a default "cloud" driver here. This driver 25 | will be bound as the Cloud disk implementation in the container. 26 | 27 */ 28 29 'cloud' => 's3', 30 31 /* 32 |-------------------------------------------------------------------------- 33 | Filesystem Disks 34 |-------------------------------------------------------------------------- 35 | 36 | Here you may configure as many filesystem "disks" as you wish, and you 37 | may even configure multiple disks of the same driver. Defaults have 38 | been setup for each driver as an example of the required options. 39 | 40 | Supported Drivers: "local", "ftp", "s3", "rackspace" 41 | 42 */ 43 44 'disks' => [ 45 46 'local' => [ 47 'driver' => 'local', 48 'root' => storage_path('app'), 49 ], 50 51 'public' => [ 52 'driver' => 'local', 53 'root' => storage_path('app/public'), 54 'visibility' => 'public', 55 ], 56 57 's3' => [ 58 'driver' => 's3', 59 'key' => 'your-key', 60 'secret' => 'your-secret', 61 'region' => 'your-region', 62 'bucket' => 'your-bucket', 63 ], 64 65 ], 66 67];

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2017/12/13 22:39

サーバーの種類(自前サーバー、レンタル、VPS等)、スペック(メモリ)は、いくつですか? 質問に追記をお願いします。
退会済みユーザー

退会済みユーザー

2017/12/13 23:11

ファイルのバリデーションがデフォルト(制限なしではない)とかだったりして?
masaya_ohashi

2017/12/14 00:13

念のためphpinfo()等を使って、設定した上限が正しく反映されているか確認してもらえますか?
masaya_ohashi

2017/12/14 00:31

MediaRequestというリクエスト用クラスも提示してもらえますか?
sarada661

2017/12/20 08:33

phpinfo()で確認しましたが、変更は反映されておりました。
sarada661

2017/12/20 08:34

MediaRequest ->FileRequestです。修正ミスです。申し訳ありません。
masaya_ohashi

2017/12/20 08:40

storage/logs/laravel.logになにか記録が残っていないか確認してみてください。
sarada661

2017/12/20 08:46

ファイルのバリデーションがデフォルト(制限なしではない)とかだったりして? => 試しに1Gとかでmaxを指定してみましたが、ダメでした。
sarada661

2017/12/20 08:53

storage/logs/laravel.logをtailしているのですが、更新されません。APP_DEBUGはtrue、APP_LOG_LEVELはdebugにしていますが設定が悪いのでしょうか。
masaya_ohashi

2017/12/20 08:59

Log::infoをどこかに挟んでおいたら出力されますか?
sarada661

2017/12/20 09:04

Log::infoではちゃんと出力されました。
masaya_ohashi

2017/12/20 09:08

となるとエラーログは吐かれていないということになりますね。確認ですが小さいファイルはアップロードできるんですよね?それと、アップロードしようとしている大きなファイルの拡張子はなんでしょうか?
sarada661

2017/12/20 09:14

100MB ~ 180MB程度のファイルはあげることができました。拡張子はmp4です。
masaya_ohashi

2017/12/20 09:20

config/filesystems.phpの内容はどうなっていますか?
sarada661

2017/12/20 09:30

質問へ追記します。
guest

回答3

0

すいません。サーバーの容量が足りなくなっていたとかいう、ドチャクソアホな理由でした。
皆さん、ご指導ありがとうございました。今後、ファイルアップ関連で見るべき点がよくわかり勉強になりました。

投稿2017/12/22 12:57

sarada661

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

おまじないのようなものですがapacheであればhttpd.confに

<Files *.php> LimitRequestBody 0 </Files>

を追記してみて下さい

投稿2017/12/14 01:49

yambejp

総合スコア114505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sarada661

2017/12/20 08:35

ご回答ありがとうございます。試してみましたが、まだダメなようです。
guest

0

ウェブサーバ側になにかエラーがでていないでしょうか。
タイムアウト値なんかが怪しいような気がします。

投稿2017/12/13 23:47

rogueref

総合スコア727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sarada661

2017/12/20 08:35

ご回答ありがとうございます。apache側のlogには特にエラーはありませんでした。httpd.confのTImeoutはデフォルトのままでしたので、試しに3000くらいまであげましたが、まだダメなようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問