2024年 5月 の投稿一覧

[備忘録] ドラッグアンドドロップでファイルをアップロードする

Laravelでドラッグアンドドロップによるファイルアップロード機能を実装するためには、JavaScriptのライブラリとLaravelのバックエンドを組み合わせて行います。以下の手順で進めることができます。

手順

フロントエンドの準備

JavaScriptのライブラリであるDropzone.jsを使用すると、簡単にドラッグアンドドロップのインターフェースを作成できます。

Dropzone.jsをインストールします。CDNから直接インポートするか、npmやyarnを使用してインストールできます。

<!-- CDNからインポートする場合 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.2/dropzone.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.2/dropzone.min.js"></script>


  • HTMLにドロップゾーンを作成します。

<form action="/upload" class="dropzone" id="my-dropzone"></form>

  • JavaScriptでDropzoneを初期化します。

<script>
  Dropzone.options.myDropzone = {
    paramName: "file", // ファイルパラメータ名
    maxFilesize: 2, // ファイルサイズの最大値 (MB単位)
    acceptedFiles: ".jpeg,.jpg,.png,.gif", // 受け付けるファイルタイプ
    success: function(file, response) {
      console.log("File uploaded successfully");
    },
    error: function(file, response) {
      console.error("File upload failed");
    }
  };
</script>

Laravelのバックエンドの設定
ファイルを受け取るエンドポイントをLaravelに作成します。

  • ルートを設定します。

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FileUploadController;

Route::post('/upload', [FileUploadController::class, 'upload'])->name('file.upload');

  • コントローラを作成します。

php artisan make:controller FileUploadController

  • コントローラでアップロード処理を実装します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class FileUploadController extends Controller
{
    public function upload(Request $request)
    {
        $request->validate([
            'file' => 'required|mimes:jpeg,jpg,png,gif|max:2048',
        ]);

        $file = $request->file('file');
        $path = $file->store('uploads', 'public');

        return response()->json(['path' => $path], 200);
    }
}

ストレージの設定

  • publicディスクを設定し、storageフォルダのシンボリックリンクを作成

php artisan storage:link

完成したコード

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.2/dropzone.min.css">
    <title>File Upload</title>
</head>
<body>
    <form action="/upload" class="dropzone" id="my-dropzone"></form>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.2/dropzone.min.js"></script>
    <script>
        Dropzone.options.myDropzone = {
            paramName: "file",
            maxFilesize: 2,
            acceptedFiles: ".jpeg,.jpg,.png,.gif",
            success: function(file, response) {
                console.log("File uploaded successfully");
            },
            error: function(file, response) {
                console.error("File upload failed");
            }
        };
    </script>
</body>
</html>




Laravelのルートとコントローラ

// web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FileUploadController;

Route::post('/upload', [FileUploadController::class, 'upload'])->name('file.upload');
// FileUploadController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class FileUploadController extends Controller
{
    public function upload(Request $request)
    {
        $request->validate([
            'file' => 'required|mimes:jpeg,jpg,png,gif|max:2048',
        ]);

        $file = $request->file('file');
        $path = $file->store('uploads', 'public');

        return response()->json(['path' => $path], 200);
    }
}

このようにして、LaravelとDropzone.jsを使ってドラッグアンドドロップによるファイルアップロード機能を実装できます。

[備忘録]ローカルで管理しているgitのプロジェクトをbitbucketのプロジェクトとして共有する

ローカルで管理しているGitプロジェクトをBitbucketに共有するには、以下の手順を実行します。これには、Bitbucketアカウントの作成、リポジトリの作成、そしてローカルリポジトリのBitbucketリポジトリにプッシュする手順が含まれます。

Bitbucketアカウントの作成

もしまだアカウントを持っていない場合、Bitbucketの公式サイトにアクセスし、アカウントを作成してください。

Bitbucketリポジトリの作成

  1. Bitbucketにログイン後、ダッシュボードから「Create repository」をクリックします。
  2. リポジトリ名、プロジェクト名、アクセスレベル(パブリックまたはプライベート)を設定します。
  3. 「Create repository」をクリックします。

ローカルリポジトリのBitbucketリポジトリに接続

Bitbucketでリポジトリを作成すると、リポジトリの概要ページに「Command line instructions」が表示されます。これに従って、ローカルリポジトリをBitbucketリポジトリに接続します。

新しいリポジトリの場合

まだGitリポジトリとして初期化されていないプロジェクトの場合:

# プロジェクトディレクトリに移動
cd /path/to/your/project

# Gitリポジトリを初期化
git init

# ファイルを追加
git add .

# コミットを作成
git commit -m "Initial commit"

# リモートリポジトリを追加
git remote add origin https://<username>@bitbucket.org/<username>/<repository-name>.git

# リモートリポジトリにプッシュ
git push -u origin master

既存のリポジトリの場合

既にGitリポジトリとして初期化されているプロジェクトの場合:

# プロジェクトディレクトリに移動
cd /path/to/your/project

# リモートリポジトリを追加
git remote add origin https://<username>@bitbucket.org/<username>/<repository-name>.git

# 変更をプッシュ
git push -u origin master

4. リモートリポジトリへのアクセス

これで、ローカルリポジトリがBitbucketのリポジトリに接続され、リモートリポジトリにプッシュすることができるようになります。今後は、変更をコミットした後、以下のコマンドで変更をBitbucketにプッシュします:

git push

まとめ

これらの手順に従うことで、ローカルで管理しているGitプロジェクトをBitbucketに共有することができます。何か問題が発生した場合や、追加のサポートが必要な場合は教えてください。