soiz1 commited on
Commit
a3c64dc
·
verified ·
1 Parent(s): 69ccddc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -4
app.py CHANGED
@@ -1,9 +1,15 @@
 
 
1
  from flask import Flask, render_template, request, redirect, url_for
2
  import pymysql
3
- import base64
4
 
5
  app = Flask(__name__)
6
 
 
 
 
 
7
  # データベース接続設定
8
  db_config = {
9
  'host': 'sql309.infinityfree.com',
@@ -13,6 +19,11 @@ db_config = {
13
  'cursorclass': pymysql.cursors.DictCursor
14
  }
15
 
 
 
 
 
 
16
  # 新しいプロジェクトをデータベースにアップロードする関数
17
  def upload_project(thumbnail, group, name, explanation, file_data):
18
  try:
@@ -33,11 +44,27 @@ def upload_project(thumbnail, group, name, explanation, file_data):
33
  def index():
34
  if request.method == 'POST':
35
  # フォームからのデータを取得
36
- thumbnail = request.form['thumbnail']
37
- group = request.form['group']
38
  name = request.form['name']
39
  explanation = request.form['explanation']
40
- file_data = request.form['file_data']
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
  # プロジェクトをデータベースにアップロード
43
  upload_project(thumbnail, group, name, explanation, file_data)
 
1
+ import os
2
+ import base64
3
  from flask import Flask, render_template, request, redirect, url_for
4
  import pymysql
5
+ import magic
6
 
7
  app = Flask(__name__)
8
 
9
+ # アップロードされたファイルを保存するためのディレクトリ
10
+ UPLOAD_FOLDER = 'uploads'
11
+ os.makedirs(UPLOAD_FOLDER, exist_ok=True)
12
+
13
  # データベース接続設定
14
  db_config = {
15
  'host': 'sql309.infinityfree.com',
 
19
  'cursorclass': pymysql.cursors.DictCursor
20
  }
21
 
22
+ # ファイルをbase64エンコードする関数
23
+ def file_to_base64(file_path):
24
+ with open(file_path, "rb") as f:
25
+ return base64.b64encode(f.read()).decode('utf-8')
26
+
27
  # 新しいプロジェクトをデータベースにアップロードする関数
28
  def upload_project(thumbnail, group, name, explanation, file_data):
29
  try:
 
44
  def index():
45
  if request.method == 'POST':
46
  # フォームからのデータを取得
47
+ thumbnail_file = request.files['thumbnail']
 
48
  name = request.form['name']
49
  explanation = request.form['explanation']
50
+ file_data_file = request.files['file_data']
51
+
52
+ # 画像とファイルのBase64エンコード
53
+ if thumbnail_file:
54
+ thumbnail_path = os.path.join(UPLOAD_FOLDER, thumbnail_file.filename)
55
+ thumbnail_file.save(thumbnail_path)
56
+ thumbnail = file_to_base64(thumbnail_path)
57
+ else:
58
+ thumbnail = None # サムネイルがなければNoneに設定
59
+
60
+ if file_data_file:
61
+ file_data_path = os.path.join(UPLOAD_FOLDER, file_data_file.filename)
62
+ file_data_file.save(file_data_path)
63
+ file_data = file_to_base64(file_data_path)
64
+ else:
65
+ file_data = None # txtファイルがない場合の処理
66
+
67
+ group = "" # 所属グループは空白
68
 
69
  # プロジェクトをデータベースにアップロード
70
  upload_project(thumbnail, group, name, explanation, file_data)