ignalxy 4 سال پیش
والد
کامیت
4544303600
9فایلهای تغییر یافته به همراه39 افزوده شده و 22 حذف شده
  1. BIN
      176797719_p0.jpg
  2. BIN
      1e.jpg
  3. BIN
      db.sqlite3
  4. 10 5
      file/views.py
  5. 2 2
      folder/views.py
  6. 6 7
      templates/delete_file.html
  7. 6 3
      templates/delete_folder.html
  8. 7 4
      templates/download_file.html
  9. 8 1
      templates/folder_list.html

BIN
176797719_p0.jpg



BIN
db.sqlite3


+ 10 - 5
file/views.py

@@ -47,10 +47,15 @@ def upload_file(request):
                                    file_type=file_type,
                                    owner=user)
         # TODO: 文件hash
-        file_dir = BASE_DIR + '/' + file.file_id
-        with open(file_dir, 'wb+') as f:
-            for chunk in file_obj.chunks():
-                f.write(chunk)
+        try:
+            file_dir = BASE_DIR + '/' + str(file.file_id)
+            with open(file_dir, 'wb+') as f:
+                for chunk in file_obj.chunks():
+                    f.write(chunk)
+        except:
+            print('文件保存失败')
+            file.delete()
+            return JsonResponse({'code': 500, 'error': '文件保存失败'})
         return JsonResponse({'code': 200})
     elif request.method == 'GET' and DEBUG:
         return render(request, 'upload_file.html')
@@ -69,7 +74,7 @@ def download_file(request):
             print('文件不存在')
             return JsonResponse({'code': 401, 'error': '文件不存在'})
         file_name = file.file_name
-        file_dir = BASE_DIR + '/' + file.file_id
+        file_dir = BASE_DIR + '/' + str(file.file_id)
         file = open(file_dir, 'rb')
         response = FileResponse(file)
         response['Content-Type'] = 'application/octet-stream'

+ 2 - 2
folder/views.py

@@ -41,8 +41,8 @@ def folder_list(request):
 
         children_folders = folder.children_folders.all()
         children_files = folder.children_files.all()
-        children = [*map(lambda f: {'type': 'folder', **f.to_json}, children_folders),
-                    *map(lambda f: {'type': 'file', **f.to_json}, children_files)]
+        children = [*map(lambda f: {'type': 'folder', **f.to_json()}, children_folders),
+                    *map(lambda f: {'type': 'file', **f.to_json()}, children_files)]
         return JsonResponse({'code': 200, 'children': children})
     elif request.method == 'GET' and DEBUG:
         return render(request, 'folder_list.html')

+ 6 - 7
templates/delete_file.html

@@ -3,20 +3,19 @@
     <div>
         <form method="post" action=".">
             {% csrf_token %}
-            <!-- 昵称 -->
             <div>
-                <label for="file_path">file_path</label>
-                <input type="text" id="file_path" name="file_path">
+                <label for="username">用户名</label>
+                <input type="text" id="username" name="username">
+            </div>
+            <div>
+                <label for="token">token</label>
+                <input type="text" id="token" name="token">
             </div>
             <!-- 昵称 -->
             <div>
                 <label for="file_id">file_id</label>
                 <input type="text" id="file_id" name="file_id">
             </div>
-            <div>
-                <label for="token">token</label>
-                <input type="text" id="token" name="token">
-            </div>
             <!-- 提交按钮 -->
             <button type="submit">提交</button>
         </form>

+ 6 - 3
templates/delete_folder.html

@@ -3,15 +3,18 @@
     <div>
         <form method="post" action=".">
             {% csrf_token %}
-            <!-- 昵称 -->
             <div>
-                <label for="folder_id">id</label>
-                <input type="text" id="folder_id" name="folder_id">
+                <label for="username">用户名</label>
+                <input type="text" id="username" name="username">
             </div>
             <div>
                 <label for="token">token</label>
                 <input type="text" id="token" name="token">
             </div>
+            <div>
+                <label for="folder_id">id</label>
+                <input type="text" id="folder_id" name="folder_id">
+            </div>
 
             <!-- 提交按钮 -->
             <button type="submit">提交</button>

+ 7 - 4
templates/download_file.html

@@ -3,16 +3,19 @@
     <div>
         <form method="post" action=".">
             {% csrf_token %}
-            <!-- 昵称 -->
             <div>
-                <label for="file_path">file_path</label>
-                <input type="text" id="file_path" name="file_path">
+                <label for="username">用户名</label>
+                <input type="text" id="username" name="username">
             </div>
             <div>
                 <label for="token">token</label>
                 <input type="text" id="token" name="token">
             </div>
-
+            <!-- 昵称 -->
+            <div>
+                <label for="file_id">file_id</label>
+                <input type="text" id="file_id" name="file_id">
+            </div>
             <!-- 提交按钮 -->
             <button type="submit">提交</button>
         </form>

+ 8 - 1
templates/folder_list.html

@@ -3,11 +3,18 @@
     <div>
         <form method="post" action=".">
             {% csrf_token %}
-
+            <div>
+                <label for="username">用户名</label>
+                <input type="text" id="username" name="username">
+            </div>
             <div>
                 <label for="token">token</label>
                 <input type="text" id="token" name="token">
             </div>
+            <div>
+                <label for="folder_id">id</label>
+                <input type="text" id="folder_id" name="folder_id">
+            </div>
 
             <!-- 提交按钮 -->
             <button type="submit">提交</button>