本番環境
Vue.js 2.6.12
netlify にデプロイしてます
axios で Laravel とやりとりしてます
Laravel 8.25.0
Xserver にデプロイしてます
問題
Vue.js から複数の画像ファイルを axios で送信して Laravel で 画像ファイルを Laravel の public/storage/ の中に保存できるようにしています
Vue
1spotImgPost(id) { 2 let formData = new FormData(); 3 for (let i = 0; i < this.files.length; i++) { 4 let file = this.files[i]; 5 formData.append('file['+i+']', file); 6 } 7 formData.append('post_id', id) 8 console.log(formData); 9 axios.post(process.env.VUE_APP_SKATE_MAPS_API + "/api/files", formData, { 10 headers: {'Content-Type': 'multipart/form-data'} 11 }) 12 .then((response) => { 13 console.log(response) 14 this.$router.push('/'); 15 }) 16 }
Laravel
1public function store(Request $request) 2 { 3 $now = Carbon::now(); 4 foreach ($request->file as $item) { 5 $file_name = time() . '.' . $item->getClientOriginalName(); 6 $item->storeAs('public', $file_name); 7 $path = 'http://********/storage/' . $file_name; 8 $param = [ 9 'post_id' => $request->post_id, 10 'path' => $path, 11 'created_at' => $now, 12 'updated_at' => $now, 13 ]; 14 DB::table('files')->insert($param); 15 } 16 return response()->json([ 17 'message' => 'files created successfully', 18 ], 200); 19 }
これでローカル環境では問題なく保存できていました
しかし本番環境だとデータベースに 'path' は保存されているのですが、public/storage に保存されていません。
Xserverのファイルマネージャーで storage の中を確認しましたが保存されていません。。
調べたこと
自分で調べてみたところこれかな??と思う記事を見つけました
Laravelでpublicフォルダ配下に保存したファイルにアクセスできない
この記事に習って ssh でエックスサーバーに接続してシンボリックリンクを確認しに行きました
$cd public $ ls -la 合計 20 drwxr-xr-x 3 xs907670 members 138 3月 10 10:20 . drwxr-xr-x 13 xs907670 members 4096 3月 10 10:20 .. -rw-r--r-- 1 xs907670 members 603 3月 10 03:25 .htaccess -rw-r--r-- 1 xs907670 members 0 3月 10 03:25 favicon.ico -rw-r--r-- 1 xs907670 members 1731 3月 10 03:25 index.php -rw-r--r-- 1 xs907670 members 24 3月 10 03:25 robots.txt drwxrwxrwx 2 xs907670 members 32 3月 10 03:25 storage -rw-r--r-- 1 xs907670 members 1194 3月 10 03:25 web.config
あれ?記事のとうりにならない
記事のとうりだと下記のように表示されるはずなのに。。。
lrwxr-xr-x 1 hoge staff 70 Apr 13 22:44 storage -> //Users/[ユーザ名]/laravel/myapp/storage/app/public
よく考えたらそもそも public/storage に保存できてないからシンボリックリンクを変更しても意味ないよなって今詰まってます、、、
すみません。説明が上手くないですが、ご教授ください!
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/10 03:50
2021/03/10 05:28 編集
2021/03/10 17:04