diff --git a/problem/views.py b/problem/views.py index 5128313b..94e3a7a9 100644 --- a/problem/views.py +++ b/problem/views.py @@ -147,9 +147,12 @@ class TestCaseUploadAPIView(APIView): f = request.FILES["file"] tmp_zip = "/tmp/" + rand_str() + ".zip" - with open(tmp_zip, "wb") as test_case_zip: - for chunk in f: - test_case_zip.write(chunk) + try: + with open(tmp_zip, "wb") as test_case_zip: + for chunk in f: + test_case_zip.write(chunk) + except IOError: + return error_response(u"上传错误,写入临时目录失败") test_case_file = zipfile.ZipFile(tmp_zip, 'r') name_list = test_case_file.namelist() diff --git a/utils/views.py b/utils/views.py index af3afc9a..87beeb4f 100644 --- a/utils/views.py +++ b/utils/views.py @@ -18,10 +18,16 @@ class SimditorImageUploadAPIView(APIView): image_name = rand_str() + '.' + str(request.FILES["image"].name.split('.')[-1]) image_dir = settings.IMAGE_UPLOAD_DIR + image_name - with open(image_dir, "wb") as imageFile: - for chunk in img: - imageFile.write(chunk) + try: + with open(image_dir, "wb") as imageFile: + for chunk in img: + imageFile.write(chunk) + except IOError: + return Response(data={ + "success": True, + "msg": "上传错误", + "file_path": "/static/upload_image/" + image_name}) return Response(data={ "success": True, - "msg": "error message", + "msg": "", "file_path": "/static/upload_image/" + image_name})