Quellcode durchsuchen

잡다한 패치

2DU vor 8 Jahren
Ursprung
Commit
8b3c3289fe
3 geänderte Dateien mit 66 neuen und 70 gelöschten Zeilen
  1. 60 66
      app.py
  2. 1 1
      views/base.tpl
  3. 5 3
      views/upload.tpl

+ 60 - 66
app.py

@@ -68,72 +68,6 @@ def setup():
         conn.close()
         return(template('other', custom = custom_css_user(), license = set_data['license'], login = login_check(), logo = set_data['name'], data = '<form method="POST"><input name="owner" type="password"> <button class="btn btn-primary" type="submit">저장</button></form>', title = '오픈나무 설치'))
 
-@route('/upload', method=['GET', 'POST'])
-def upload():
-    conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
-    curs = conn.cursor(pymysql.cursors.DictCursor)
-    
-    ip = ip_check()
-    ban = ban_check(ip)
-    
-    if(request.method == 'POST'):        
-        if(ban == 1):
-            conn.close()
-            return(redirect('/ban'))
-        else:
-            file = request.files.file
-            if(file):
-                comp = re.compile("^(.+)(\.(?:jpg|gif|png|jpeg))$", re.I)
-                exist = comp.search(file.filename)
-                if(exist):
-                    if((int(set_data['upload']) * 1024 * 1024) < request.content_length):
-                        conn.close()
-                        return(redirect('/error/17'))
-                    else:
-                        file_info = exist.groups()
-                        
-                        if(not request.forms.data):
-                            file_data = file_info[0] + file_info[1]
-                            file_name = sha224(file_info[0]) + file_info[1]
-                        else:
-                            file_data = request.forms.data + file_info[1]
-                            file_name = sha224(request.forms.data) + file_info[1]
-                                           
-                        if(os.path.exists(os.path.join('image', file_name))):
-                            conn.close()
-                            return(redirect('/error/16'))
-                        else:
-                            file.save(os.path.join('image', file_name))
-                            
-                            if(not request.forms.lice):
-                                lice = ip + ' 업로드'
-                            else:
-                                lice = '라이선스 : ' + request.forms.lice
-                            
-                            curs.execute("select title from data where title = '" + db_pas('파일:' + file_data) + "'")
-                            exist_db = curs.fetchall()
-                            if(not exist_db):
-                                curs.execute("insert into data (title, data, acl) value ('" + db_pas('파일:' + file_data) + "', '" + db_pas('[[파일:' + file_data + ']][br][br]{{{[[파일:' + file_data + ']]}}}[br][br]' + lice) + "', '')")
-                                conn.commit()
-                            
-                            history_plus('파일:' + file_data, '[[파일:' + file_data + ']][br][br]{{{[[파일:' + file_data + ']]}}}', get_time(), ip, '파일:' + file_data + ' 업로드', '0')
-                            
-                            conn.close()
-                            return(redirect('/w/' + url_pas('파일:' + file_data)))
-                else:
-                    conn.close()
-                    return(redirect('/error/14'))
-            else:
-                conn.close()
-                return(redirect('/error/14'))
-    else:        
-        if(ban == 1):
-            conn.close()
-            return(redirect('/ban'))
-        else:
-            conn.close()
-            return(template('upload', custom = custom_css_user(), license = set_data['license'], login = login_check(), logo = set_data['name'], title = '업로드', number = set_data['upload']))
-
 @route('/image/<name:path>')
 def static(name = None):
     if(os.path.exists(os.path.join('image', name))):
@@ -2578,6 +2512,66 @@ def custom_css():
 
         conn.close()
         return(template('other', custom = custom_css_user(), license = set_data['license'], login = login_check(), title = '커스텀 CSS', logo = set_data['name'], data = start + '<form id="usrform" name="f1" method="POST" action="/custom"><textarea rows="30" cols="100" name="content" form="usrform">' + data + '</textarea><br><br><div class="form-actions"><button class="btn btn-primary" type="submit">저장</button></div></form>'))
+
+@route('/upload', method=['GET', 'POST'])
+def upload():
+    conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
+    curs = conn.cursor(pymysql.cursors.DictCursor)
+    
+    ip = ip_check()
+    ban = ban_check(ip)
+    
+    if(ban == 1):
+        conn.close()
+        return(redirect('/ban'))
+    elif(request.method == 'POST'):        
+        if(request.files.file):
+            comp = re.compile("^(.+)(\.(?:jpg|gif|png|jpeg))$", re.I)
+            exist = comp.search(request.files.file.filename)
+            if(exist):
+                if((int(set_data['upload']) * 1024 * 1024) < request.content_length):
+                    conn.close()
+                    return(redirect('/error/17'))
+                else:
+                    file_info = exist.groups()
+                    
+                    if(not request.forms.data):
+                        file_data = file_info[0] + file_info[1]
+                        file_name = sha224(file_info[0]) + file_info[1]
+                    else:
+                        file_data = request.forms.data + file_info[1]
+                        file_name = sha224(request.forms.data) + file_info[1]
+                                        
+                    if(os.path.exists(os.path.join('image', file_name))):
+                        conn.close()
+                        return(redirect('/error/16'))
+                    else:
+                        request.files.file.save(os.path.join('image', file_name))
+                        
+                        if(not request.forms.lice):
+                            lice = ip + ' 업로드'
+                        else:
+                            lice = '라이선스 : ' + request.forms.lice
+                        
+                        curs.execute("select title from data where title = '" + db_pas('파일:' + file_data) + "'")
+                        exist_db = curs.fetchall()
+                        if(not exist_db):
+                            curs.execute("insert into data (title, data, acl) value ('" + db_pas('파일:' + file_data) + "', '" + db_pas('[[파일:' + file_data + ']][br][br]{{{[[파일:' + file_data + ']]}}}[br][br]' + lice) + "', '')")
+                            conn.commit()
+                        
+                        history_plus('파일:' + file_data, '[[파일:' + file_data + ']][br][br]{{{[[파일:' + file_data + ']]}}}', get_time(), ip, '파일:' + file_data + ' 업로드', '0')
+                        
+                        conn.close()
+                        return(redirect('/w/' + url_pas('파일:' + file_data)))
+            else:
+                conn.close()
+                return(redirect('/error/14'))
+        else:
+            conn.close()
+            return(redirect('/error/14'))
+    else:        
+        conn.close()
+        return(template('upload', custom = custom_css_user(), license = set_data['license'], login = login_check(), logo = set_data['name'], title = '업로드', number = set_data['upload']))
     
 @route('/count')
 def count_edit():

+ 1 - 1
views/base.tpl

@@ -20,7 +20,7 @@
         <link rel="shortcut icon" href="/views/img/on.ico">
         <meta name="viewport" content="width=device-width, initial-scale=1">
     <style>
-        {{get('custom', '')}}
+        {{!get('custom', '')}}
     </style>
     </head>
     <body onload="brython()">

+ 5 - 3
views/upload.tpl

@@ -13,7 +13,7 @@
 </h1>
 <div>
     <form action="/upload" method="POST" enctype="multipart/form-data">
-        <input type="file" name="file">
+        <input type="file" name="file" accept=".jpg, .jpeg, .png, .gif, .JPG, .JPEG, .PNG, .GIF">
         <br>
         <br>
         파일명 : <input type="text" name="data">
@@ -23,6 +23,8 @@
         <br>
         <br>
         <button class="btn btn-primary" type="submit">업로드</button>
+        <br>
+        <br>
+        <span>{{number}}MB 이하 파일만 업로드 가능하고 확장자는 jpg, png, gif, jpeg만 가능합니다.</span>
     </form>
-</div>
-<span>{{number}}MB 이하 파일만 업로드 가능하고 확장자는 jpg, png, gif, jpeg만 가능합니다.</span>
+</div>